js显示原型和隐示原型

 1 <script>
 2         //定义一个构造函数
 3         function Fn() {
 4             //内部自动执行一条语句,增加prototype属性并赋值一个空对象
 5             //this.prototype = {}  这就是显示原型
 6         }
 7         console.log(Fn.prototype); //查看显示原型
 8 
 9         //新建一个实例化对象,在新建对象的时候会默认创建隐示原型属性__proto__
10         //创建语句就是 this.__proto__ = Fn.prototype,就是把prototype属性赋值给__proto__,所以他们俩是相等的
11         var fn = new Fn();
12         console.log(fn.__proto__); //查看隐示原型
13 
14         //显示原型和隐示原型的比较
15         console.log(Fn.prototype === fn.__proto__); //true
16 
17         //显示原型一般用于动态的给构造函数增加方法。因为和隐示原型是相等的,所以对象实例也可以查找到增加的方法并直接使用?
18         Fn.prototype.test = function(){
19             console.log('test()');
20         }
21         //通过隐示原型调用到显示原型增加的方法?
22         fn.test();
23 
24     </script>

图解:

原文地址:https://www.cnblogs.com/tianakong/p/14173347.html