function fun(){
var People = function(name){
this.name = name;
alert('调用方法而已');
this.init();
}
People.prototype.init = function(){
alert('People初始化!');
}
return People;
}
var p = fun();
new p;
fun()返回的是Person变量引用的函数,所以fun()()只会打印 '调用方法而已'
奇怪的是new fun()什么都不打印?谁知道请麻烦告诉我,多谢了
我这里先赋值给p,然后再new,又有用,难道非得间接一下才好使?
fun()()不打印'People初始化!'的原因:
定义People函数时没有init()方法,之后加到prototype,而prototype只有在实例化才能绑定,继而通过原型链找到init()方法
JavaScript原型链探究
本文探讨了JavaScript中使用原型链实现对象继承的方法。通过一个具体的示例,解释了如何定义一个构造函数并为其原型添加方法,以及如何正确地实例化对象以访问这些方法。特别讨论了在不同方式下构造函数与原型之间的联系及其对方法访问的影响。
261

被折叠的 条评论
为什么被折叠?



