function Fun() { this.name = "mary"; this.sec = function () {
console.log("sec");
}
}
function CopyFun() { // Fun.call(this);
this.fun = Fun; this.fun();
}var fun = new CopyFun();fun.sec(); // secconsole.log(fun.name); // maryconsole.log(fun.hasOwnProperty("sec")); // true为什么CopyFun中this.fun()方法执行就可以创建属性?我是这样理解的:this.fun = function(){ this.name = "mary"; this.sec = function () { console.log("sec");
}
}当执行 this.fun() 这一步时应该是一个正常函数的调用,由于没有返回值所以应该返回undefined。但实际情况是,它相当于执行了Fun.call(this),创建的属性name和sec,这一点不能理解,望哪位大神给解释一下,谢谢!!!。
添加回答
举报
0/150
提交
取消