繁体   English   中英

如何在javascript中访问“ this”对象?

[英]how to access “this” object in javascript?

为什么在下面的代码中,第二行给我一个未定义的错误?

function DAO()
{
        this.arrVariable = new Array();
        this.getItem = getItem;
        this.getItemQuery = getItemQuery;
}

function getItem(key)
{
        dao.arrVariable[key]();
}

function getItemQuery(key, url, options, pollfrequency)
{
        alert('hey');
}


var dao = new DAO();
dao.arrVariable['var1'] = function() { this.getItemQuery('a','b','c','d'); };

dao.arrVariable['var1']();

我希望能够访问dao的getItemQuery作为对象调用。 我该怎么做呢?

在这种情况下, this是指arrVariable 您可以改为在函数内部将其称为dao.getItemQuery()

dao.arrVariable['var1'] = function() { dao.getItemQuery('a','b','c','d'); };

您可以在此处使用applycall

所以,代替

dao.arrVariable['var1']();

使用任一

dao.arrVariable['var1'].apply(dao, /* array of arguments here */);

要么

dao.arrVariable['var1'].call(dao, /* arguments here, separated by commas */);

dao.getItemQuery可以访问dao的属性

function() { this.getItemQuery('a','b','c','d'); }; function() { this.getItemQuery('a','b','c','d'); }; 引用function()而不是DAO。 您需要通过以下方式访问DAO:

dao.arrVariable['var1'] = function() { dao.getItemQuery('a','b','c','d'); };

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM