原型和构造函数(2)

2018-07-18 01:43:36来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

访问原型的方法

1,通过构造函数访问原型

 function Person(){
     }
     var p =new Person();
     
    Person.prototype.msg ='在不在'

2,通过实例化对象访问原型

 function Person(){
     }
     var p =new Person();

   p.__proto__.sayHello = function(){
       console.log('你好')//你好
   }
   p.sayHello()

__proto__属性是一个非标准的属性,为了保证通用性,这个属性不推荐使用。

__proto__属性的用途,主要用来做调试

 

原型图 原型和构造函数,实例化对象三者的关系

可以看到,每一个构造函数都会有一个prototype属性,这个属性指向一个原型对象,这个构造函数通过new生成一个新的实例对象,这个实例拥有一个__proto__属性,而这个对象这个指向原型对象。

 

其中需要注意的是替换原型的时候,需要手动添加constructor

function Person(){

    }
    Person.prototype = {
        name : '刘钢蛋'
    };
    console.log(Person.prototype.constructor);//? Object() { [native code] }

如果不加constructor属性会导致constructor指向的是Object

function Person(){

    }
    Person.prototype = {
        name : '刘钢蛋',
        constructor: Person
    };
    console.log(Person.prototype.constructor);//? Person(){}

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:JS获取元素宽高的两种情况

下一篇:重新理解闭包