これが私が遭遇したものです...私は自分のオブジェクトをデザインします:
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
これは明らかに参照を変更しますが、オブジェクト内の参照は変更しません。これを回避する唯一の方法は、ゲッター/セッター関数を作成することですか?