原型和构造函数(2)
程序员文章站
2022-10-04 17:07:00
访问原型的方法 1,通过构造函数访问原型 2,通过实例化对象访问原型 __proto__属性是一个非标准的属性,为了保证通用性,这个属性不推荐使用。 __proto__属性的用途,主要用来做调试 原型图 原型和构造函数,实例化对象三者的关系 可以看到,每一个构造函数都会有一个prototype属性, ......
访问原型的方法
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(){}
推荐阅读