var title = "aaa";
var myclass = function(){}
myclass.title = "bbb";
myclass.prototype.getTitle = function(){
function doGetTitle(){
return this.title;
}
return doGetTitle.call(this);
}
var obj = new myclass();
console.log(obj.getTitle());
console为什么输出undefined呢?我以为是‘aaa’,我的理解是闭包内部函数里的this指向全局的widow
但getTitle里的this并不是指向全局,用了call(this),把doGetTitle里的this绑定到obj身上了。
另外补充一点是myclass.title="bbb"只是给myclass这个对象赋了title属性,但new myclass()得到的对象是没有title属性的,于是 console 输出undefined