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()方法