//prototype 面试题
Function.prototype.a ='a';
Object.prototype.b ='b';
function Person() {};
var p =new Person();
p.a;
p.b;
console 初始化并打印
先来说说Person()
本题中Person,为Function类型,通过继承可以得到a();
本题中Person 通过Person.prototype 访问到 constructor 和 __ proto__,接着找到我们定义的b()
显然,Person的构造器是一个函数,Person构造函数的原型为Object
因此通过访问 Person.prototype.__ proto__ 可以拿到b方法
Person.prototype
再来说说 p=new Person();
p为Person的一个实例,p的constructor为Person();
prototype中的内容与Person() 保持一致
但对于函数a,由于没有在函数Person()的原型中实例化,因此无法实现继承;
重写Person()的原型,可以得到函数a()
实现Person()继承a
网友评论