gpt4 book ai didi

Javascript 访问父属性

转载 作者:行者123 更新时间:2023-11-30 08:54:29 24 4
gpt4 key购买 nike

如何获得家长选项?

我想访问全局 myObject 选项

var myObject = {    
method: function(){
this.options = {};
},
property: {
propertyMethod: function(){
alert(this.options);
}
}
}
myObject.method();
myObject.property.propertyMethod();

最佳答案

如果你的意思是,你想从 property.propertyMethod 中访问 myObjectoptions 属性,除了利用 propertyMethodmyObject 变量的闭包这一事实,例如:

var myObject = {    
method: function(){
this.options = {};
},
property: {
propertyMethod: function(){
alert(myObject.options); // <=== Change is here
}
}
}
myObject.method();
myObject.property.propertyMethod();

...这通常不是一个好主意。 :-) 相反,您可能想要以不同的方式设计您的对象。例如:

var myObject = (function() {
var obj = {
method: function(){
obj.options = {};
},
property: {
propertyMethod: function(){
alert(obj.options);
}
}
};
return obj;
})();
myObject.method();
myObject.property.propertyMethod();

这样,您就可以使用函数调用的执行上下文。但如果您打算这样做,也许可以进入下一步:

function makeObject() {
var obj = {
method: function(){
obj.options = {};
},
property: {
propertyMethod: function(){
alert(obj.options);
}
}
};
return obj;
}
var myObject = makeObject();
myObject.method();
myObject.property.propertyMethod();

...所以您可以制作多个。或者甚至制作一个真正的构造函数:

function MyObject() {
var obj = this;

obj.method = function(){
obj.options = {};
};

obj.property = {
propertyMethod: function(){
alert(obj.options);
}
};
}
var myObject = new MyObject();
myObject.method();
myObject.property.propertyMethod();

...虽然因为您没有利用原型(prototype),所以没有太多理由让它成为构造函数。

关于Javascript 访问父属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14857901/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com