在我的应用程序中,当我将数据传递给不同的对象时,我不确定我是否在复制数据。就像一个例子,看看下面的代码:
var DataStore = function(data) {
this.data = data; // <-- typeof data === 'object'
}
var Controller = function() {
var dataStore = new DataStore({foo: 'bar'});
var plugin = new Plugin(dataStore.data);
}
var Plugin = function(data) {
this.data = data;
}
var app = new Controller();
当我创建插件时,它从 dataStore 传递数据属性。然后将其分配给插件内部的一个属性。请记住,传递的数据是一个对象,我的问题是,这是在内存中创建两个变量还是插件中的数据属性引用了 DataStore 对象中的属性?
如果它在分配后不保留引用,我如何将 DataStore 传递到 Plugins 并在本地保留对它的引用?或者我是否需要将 DataStore 作为全局变量保留在我的应用程序范围内并从插件全局引用它?