在第一个 alert(this.child) 返回一个对象,第二个它返回 undefined 而我期望相同的结果。为什么以及如何修复它?
https://jsfiddle.net/7jnyozx1/2/
var Child = (function() {
function Child(data) {
}
return Child;
})();
var ChildModel = (function() {
function ChildModel(data) {
this.data = data;
this.child = new Child(data);
alert(this.child); // TEST OK : object
}
function local() {
alert(this.child); // TEST KO : undefined
}
ChildModel.prototype.call = function() {
local();
}
return ChildModel;
})();
data = "hello";
var childModel = new ChildModel(data);
childModel.call();
最佳答案
因为函数 local
与对象没有任何关系。您可以将该函数放在文件的顶部,它会以完全相同的方式工作。
您可以执行 local.apply(this);
将 this
从 call
方法传递给函数,但您可能我们也将 local
设为原型(prototype)函数。
关于javascript - 为什么属性返回未定义而不是对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35590441/