如果我定义两个对象myDataStore和myDrawer是这样的:这是一种在JavaScript中引用对象的安全方法吗?
var myDataStore = function(myObjectRef) {
this.myInternalObject = myObjectRef;
};
var myDrawer = function(myObjRef) {
this.myInternalObject = myObjectRef;
};
如果我是创建了以下这样一个对象:
[编辑 - 调整对象的创建,以确保“这个”被映射到myObject的,而不是全局的window对象]
(function(){
var myObject = window.myObject = function(){
this.dataStore = new myDataStore(this);
this.drawer = new myDrawer(this);
}
})();
然后myObject.dataStore.myInternalObject和myObject.drawer.myInternalObject,只会是指针回到原来的“myObject的” - 不占用任何ADDIT浏览器中的离子记忆。是?
我有兴趣实现这样的技术 - 因为它可以让对象更容易相互通信。
对不起,我真的不应该犯了那个错误的我是如何创建myObject的 - 我的困惑是不处理的“本”的范围,但使用JavaScript是否是要在myObject.dataStore和myObject.drawer中创建一个额外的myObject副本,还是仅仅是对myObject对象的引用 - 这是我认为它的作用 – John 2010-06-01 15:13:54