Javascript 如何将子对象的作用域设置为父对象?
我得到了以下代码:Javascript 如何将子对象的作用域设置为父对象?,javascript,object,scope,prototype,Javascript,Object,Scope,Prototype,我得到了以下代码: define(function() { var core = function() {}; var module; core.prototype.module = { setModule: function(name) { this.module = name; module = name; } }; core.prototype.sandbox = { getM
define(function() {
var core = function() {};
var module;
core.prototype.module = {
setModule: function(name) {
this.module = name;
module = name;
}
};
core.prototype.sandbox = {
getModules: function() {
// will throw undefined
console.log(this._module);
// will maybe not throw an error?
console.log(modules);
}
};
});
define(['kernel'], function(Kernel) {
var sampleCore = new Core();
sampleCore.setModule('test');
sampleCore.getModules();
});
如您所见,我无法使用此方法访问其他名称空间。是否有其他方式访问此模块?
关于使用
core.module.\u modules
core.sandbox = {
register: function(name) {
var modules = core.module._modules;
}
};
使用
core.module.\u modules
core.sandbox = {
register: function(name) {
var modules = core.module._modules;
}
};
为对象设置一个参数怎么样
core.sandbox = {
register: function(obj, name) {
console.log( obj.module );
}
};
var a = new core.module.load(/* ..., .... */);
core.sandbox.register( a );
为对象设置一个参数怎么样
core.sandbox = {
register: function(obj, name) {
console.log( obj.module );
}
};
var a = new core.module.load(/* ..., .... */);
core.sandbox.register( a );
正如我在一篇评论中所说的,也许你可以在核心对象中添加一个变量,这样其他函数就有了一些共同的东西可以保留
define(function() {
var core = function() {
var that = this;
};
var module;
core.prototype.module = {
setModule: function(name) {
that.module = name;
module = name;
}
};
core.prototype.sandbox = {
getModules: function() {
console.log(that.module);
}
};
});
正如我在一篇评论中所说的,也许你可以在核心对象中添加一个变量,这样其他函数就有了一些共同的东西可以保留
define(function() {
var core = function() {
var that = this;
};
var module;
core.prototype.module = {
setModule: function(name) {
that.module = name;
module = name;
}
};
core.prototype.sandbox = {
getModules: function() {
console.log(that.module);
}
};
});
这将在实例化Core时导致leatest出现问题这将在实例化Core时导致leatest出现问题有可能将对象绑定到此对象吗?类似于var parent={child:{}.bind(this)}?你的确切意思是什么?这不是我刚才给你看的吗?:-)你不能引用核心!Core正在使用新Core()进行实例化。所以你的推荐不再有效了…更好,但不是最佳的。我检查是否在中设置了名称空间。prototype解决了这个问题。是否可以将对象绑定到此名称空间?类似于var parent={child:{}.bind(this)}?你的确切意思是什么?这不是我刚才给你看的吗?:-)你不能引用核心!Core正在使用新Core()进行实例化。所以你的推荐不再有效了…更好,但不是最佳的。我检查在.prototype中设置名称空间是否解决了这个问题我认为您的范围是setmodule/getmodule。在core中创建一个=this的var,然后使用该.module?@zladuric您能提供一个示例,以便我将其标记为答案吗?在那里,添加它。但是我没有尝试这个,所以首先测试它:)我认为您的这个范围是setmodule/getmodule。在core中创建一个=this的var,然后使用该.module?@zladuric您能提供一个示例,以便我将其标记为答案吗?在那里,添加它。我没有尝试过,所以先测试一下:)