我正在寻找一种使用嵌套对象时访问父对象的方法,我处在一个复杂的情况下,因此无法在此处提供真实的示例。
相反,我写了一个非常简单的示例,这是我的工作:
我通过queryselector()获得了一个JavaScript对象。
然后,我将自己的名为get
的属性添加到它本身就是一个对象。
我想在调用嵌套对象时获得对父JavaScript对象的访问权,我的意思是elem
在elem.get.text()
中执行到达内部text()
函数内部的时间:
//***** Initialization:
var get = {
text: function(){
//Here I want to know what was the elem
return elem.textContent;
},
foo: function(){},
bar:{
text: function(){
//And also here which is one level deeper
return elem.textContent;
}
}
};
var elem = document.querySelector("#elem");
elem.get = Object.create(get);
//*****
function getText(e){
var elem = e.target;
alert(elem.get.text());
}
<input type="button" id="elem" onclick="getText(event)" value="Get Text"/>
我再次强调,这只是一个简单的示例,所以不要批评我可以通过一种更简单的方法来获取输入文本。
实际上,我想知道如何在
a
中到达b
时访问a.b()
而不使用全局变量。 最佳答案
使用elem
创建新的get
实例时,可以将引用保存到Object.create
。
//***** Initialization:
var get = {
text: function() {
//Here I want to know what was the elem
return this.elem.value; // use this.elem to access element
},
foo: function() {},
bar: function() {}
};
var elem = document.querySelector("#elem");
elem.get = Object.create(get, {
elem: { // keep current element ref
value: elem
}
});
//*****
function getText(e) {
var elem = e.target;
console.log(elem.get.text());
}
<input type="button" id="elem" onclick="getText(event)" value="Get Text" />
另外,出于演示目的,我已经更新了
text
以使用value
代替textContent
,因为input
没有文本内容。关于javascript - 如何访问嵌套对象中的父对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57035459/