gpt4 book ai didi

javascript - dom 是如何在对象字面量的函数之间缓存的? (Javascript)

转载 作者:行者123 更新时间:2023-12-02 20:32:16 24 4
gpt4 key购买 nike

好吧,我不确定这篇文章的标题是否正确地表达了我的意思,我很确定我已经知道这个问题的答案,但我只是想要一些澄清。

如果我有一个这样的项目

var myObj = {
settings : {
domObj = document.getElementById('elem1');
},
myFunc1 : function () {
return this.domObj;
},
myFunc2 : function () {
return this.domObj;
}
}

myObj.myFunc1();
myObj.myFunc2();

domObj 是在第一次访问时缓存,还是在两个函数中都遍历了 dom?我只尝试访问 Dom 一次,但不确定这是否是一个可能的解决方案。

最佳答案

假设你真的是这个意思:

var myObj = {
settings : function() {
domObj = document.getElementById('elem1');
},
myFunc1 : function() {
return this.domObj;
},
myFunc2 : function() {
return this.domObj;
}
};

答案是“domObj”是一个全局变量因为您忘记了 var 关键字。现在,您的意思可能是这样:

var myObj = {
domObj: null,
settings : function() {
this.domObj = document.getElementById('elem1');
},
myFunc1 : function() {
return this.domObj;
},
myFunc2 : function() {
return this.domObj;
}
};

在这种情况下,“domObj”只是“myObj”的属性。如果你打电话它就会被设置

myObj.settings();

关于javascript - dom 是如何在对象字面量的函数之间缓存的? (Javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3900455/

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