Javascript 改变<;这>;在对象文字中
我正在创建一个对象文字,我想使用保留字“this”。我遇到的问题是“this”指向对象文本中的窗口对象。我知道在构造函数中使用时,this指向当前对象。有没有办法覆盖它,使“this”指向我的对象文字Javascript 改变<;这>;在对象文字中,javascript,Javascript,我正在创建一个对象文字,我想使用保留字“this”。我遇到的问题是“this”指向对象文本中的窗口对象。我知道在构造函数中使用时,this指向当前对象。有没有办法覆盖它,使“this”指向我的对象文字 main = { run: function() { var elements = []; var allElements = document.querySelectorAll("*"); for(var i = 0;
main = {
run: function()
{
var elements = [];
var allElements = document.querySelectorAll("*");
for(var i = 0; i < allElements.length; i++)
{
if(allElements[i].nodeType != 3)
{
elements.push(allElements[i]);
}
}
for(var i = 0; i < elements.length; i++)
{
// Doesn't work
// this.parseElement(elements[i]);
// Works
main.parseElement(elements[i]);
}
},
parseElement: function(e)
{
// Unimportant code
}
}
(function()
{
main.run();
})();
main={
运行:函数()
{
var元素=[];
var-allegements=document.queryselectoral(“*”);
对于(var i=0;i
您在问题中声称有效的东西不起作用:
var main={
运行:(函数()
{
var元素=[];
var-allegements=document.queryselectoral(“*”);
对于(var i=0;i
当您尝试执行匿名函数时,您的对象文字还不存在。此时您无法调用parseElement
,因为它尚未定义。您如何调用函数main.run()
?您声称有效的东西不起作用。请参阅Thank@t.J.Crowder我不知道您可以自引用对象文字作为回报。