赞
踩
//构造函数
function Person(name) {
this.name = name;
}
// var p = new Person("zhenglijing");
//等同于将构造函数的原型对象赋给实例对象p的属性__proto__
p.__proto__ = Object.setPrototypeOf({},Person.prototype);
Person.call(p,"zhenglijing");
这样实例的属性__proto__就指向了构造函数的原型,这样就形成了原型链,当在实例中找不到属性或方法时,就通过原型链进行查找。
在实例中执行构造函数,构造函数就是一个普通函数,如果一个普通函数在一个对象中被执行了,那么this就是该实例。比如
var o = {};
function Person(name) {
this.name = name;
}
//把构造函数放在对象o中执行,那么这个this就是o对象了,执行完后,该o对象就有了实例属性name了。
Person.call(o,"zhenglijing");
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。