如何在javascript中从obj.foo.bar访问主obj?
javascript中的对象让我陷入了一个循环 在这个设置中如何在javascript中从obj.foo.bar访问主obj?,javascript,Javascript,javascript中的对象让我陷入了一个循环 在这个设置中 var obj = { someVar: "my awesome variable", foo: { bar: function(){ alert(this.someVar); } } }; 如何让obj.foo.bar使用捕获的obj正确警告someVar的值?: var obj = { someVar: "my awesome variabl
var obj = {
someVar: "my awesome variable",
foo: {
bar: function(){
alert(this.someVar);
}
}
};
如何让obj.foo.bar使用捕获的obj正确警告someVar的值?:
var obj = {
someVar: "my awesome variable",
foo: {
bar: function(){
alert(obj.someVar);
}
}
};
使用捕获的obj:
var obj = {
someVar: "my awesome variable",
foo: {
bar: function(){
alert(obj.someVar);
}
}
};
没有聪明的方法可以沿着祖先的链条走。如果要查找某种类型的this.parent
表示法,对象不知道它们包含在哪里。没有什么可以说一个对象甚至有一个“父对象”
没有聪明的方法可以沿着祖先的链条走。如果要查找某种类型的this.parent
表示法,对象不知道它们包含在哪里。没有什么可以说一个对象甚至有一个“父对象”
Javascript中的函数仅在应用了
运算符的对象的上下文中调用。这是不可能的,因为Javascript对象本质上并不知道它们的父对象
唯一的方法是单独引用obj
。(作为条的属性或单独的变量)Javascript中的函数仅在应用
运算符的对象上下文中调用。这是不可能的,因为Javascript对象本质上并不知道它们的父对象
唯一的方法是单独引用obj
。(作为条的一个属性或一个单独的变量)这里有一个我刚刚为向上遍历准备的通用模式。根据您的需求/假设,您可能会降低一些复杂性
var obj = (function (parent) {
var obj = {
foo: "foo",
up: function () {
return parent;
}
};
obj.bar = (function (parent) {
var obj = {
baz: function () {
alert(this.up().foo);
},
up: function () {
return parent;
}
};
return obj;
}(obj));
return obj;
}(window));
obj.bar.baz(); // "foo"
几乎可以肯定,这比它的价值要麻烦得多。这里有一个我刚刚为向上遍历设计的通用模式。根据您的需求/假设,您可能会降低一些复杂性
var obj = (function (parent) {
var obj = {
foo: "foo",
up: function () {
return parent;
}
};
obj.bar = (function (parent) {
var obj = {
baz: function () {
alert(this.up().foo);
},
up: function () {
return parent;
}
};
return obj;
}(obj));
return obj;
}(window));
obj.bar.baz(); // "foo"
几乎可以肯定,这比它的价值要麻烦得多。这对我来说非常有用,而这正是我真正需要的。我只是想知道,我只是将对象用作收集失控函数的包装器,这实际上是我第一次尝试组织obj.properties以供以后使用。这和jQuery引用主obj属性时使用的方法是一样的吗?还是这只适用于。。。静态(?)对象?请注意,这只可能是因为它是对象文字。对于实例化的对象,情况并非如此(除非该对象是单例对象)。这对我来说非常有用,而这正是我真正需要的。我只是想知道,我只是将对象用作收集失控函数的包装器,这实际上是我第一次尝试组织obj.properties以供以后使用。这和jQuery引用主obj属性时使用的方法是一样的吗?还是这只适用于。。。静态(?)对象?请注意,这只可能是因为它是对象文字。对于实例化的对象(除非该对象是单例对象),情况并非如此。由于obj
是一个对象文字,因此可以通过名称来引用它(如spender所示)@Justin:我知道。但是,变量可能会被重新分配,但事实并非如此。由于obj
是一个对象文字,因此可以通过名称来引用它(如spender所示)@Justin:我知道。但是,可能会重新分配变量。