Javascript 改变<;这>;在对象文字中

Javascript 改变<;这>;在对象文字中,javascript,Javascript,我正在创建一个对象文字,我想使用保留字“this”。我遇到的问题是“this”指向对象文本中的窗口对象。我知道在构造函数中使用时,this指向当前对象。有没有办法覆盖它,使“this”指向我的对象文字 main = { run: function() { var elements = []; var allElements = document.querySelectorAll("*"); for(var i = 0;

我正在创建一个对象文字,我想使用保留字“this”。我遇到的问题是“this”指向对象文本中的窗口对象。我知道在构造函数中使用时,this指向当前对象。有没有办法覆盖它,使“this”指向我的对象文字

 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我不知道您可以自引用对象文字作为回报。