[英]Javascript revealing module pattern - references
這是我遇到的問題...我設計了對象:
var Tab = function () {
var _data = [], _owners = [], _supportWorkers = [], _watchers = [];
var _dataLength = function () { return _data.length; };
return {
Data: _data,
Owners: _owners,
SupportWorkers: _supportWorkers,
Watchers: _watchers,
Length: _dataLength
};
};
var newObject = new Tab();
newObject.Data = [{"my":"data"}];
alert(newObject.Length()); // Length == 0
alert(newObject.Data.length); // Length == 1
這顯然會更改引用,但不會更改對象內部的引用。 創建Getter / Setter函數是避免這種情況發生的唯一方法嗎?
var _dataLength = function () { return this.Data.length; };
從外部開始工作,因為this
將引用實例。 它不能在模塊本身內部工作。
這是我的操作方式-如果您的所有數據都被顯示,則顯示模塊模式毫無意義:
var Tab = function () {
this.data = [];
this.owners = [];
this.supportWorkers = [];
this.watchers = [];
}
Tab.prototype.dataLength = function () { return this.data.length; };
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.