我不确定我能说得对,所以这里有一些代码:
注意:这是一个名为a.js的文件,它是一个dojo模块
define([], function() {
var j = {
a : function() {
//a object
},
b : function() {
//b object
this.x = new j.a();// this works
this.y = new this.a(); // this causes error later, see jsfiddle link below
},
c : function() {
//c object
}
}
return j;
});
我只想在创建一个新的'a'对象时将对象b作为新对象(b的父对象).a();而不是新的j.a();其中变量j恰好是b的父级。不确定这个解释是否有帮助,但我基本上想要从b。
创建一个新的'a'对象的相对方法错误在此代码中重现:http://jsfiddle.net/WhhV5/3/
不确定如何在jsfiddle中运行dojo内容,因此代码可能无法运行,但这些是我家xampp上使用的两个文件
答案 0 :(得分:0)
坦率地说,在这里你没有意义:
换句话说,我想在jb()中调用ja(),jc(),这样如果我将var j的名称更改为var m,我就不必更改函数调用ma(),mc()。
您无法在JavaScript中更改变量的名称。变量是Objects
的引用而不是Object
本身(即分配给数据结构的内存范围)。
如果您使用另一个变量j
引用m
引用的值,则j
仍将存在于内存中。您只需创建另一个引用到Object
j
引用。你没有改名。
因此,如果您致电m#b
,它会j#a
和j#c
没有问题,因为j
仍然存在。
var j = {
a: function( ) { console.log("(!!) a") ; } ,
b: function( ) { new this.a( ) ; } ,
c: function( ) { console.log("(!!) b") ; } ,
} ;
var m = j ;
m.b( ) ;