我在下面的類時,我打電話printData我得到this.collection是未定義的。如何從JavaScript中的原型訪問對象屬性?
如何從printData()中的原型訪問this.collection?或者我需要改變班級結構。實際上,對象返回實體返回層次結構中的對象的函數。
在此先感謝!
樣品等級:
var DbProvider = (function() {
function DbProvider(db) {
var that = this; // create a reference to "this" object
that.collection = db;
}
DbProvider.prototype.create = function() {
return {
action: function() {
var y = {
printData: function() {
alert('Hello ' + this.collection.Name);
}
};
return y;
}
};
};
return DbProvider;
})();
用法:
var a = new DbProvider({ "Name": "John" });
a.create().action().printData();
是否可以使用ES6類? – MayorMonty
在你的代碼中,你創建一個'this'的引用,標記在'that'中。你可以使用'that'來代替(雙關語) – MayorMonty
沒有那個對象是不可訪問的。也有可能用ES5創建普通的JavaScript? –