如何访问“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'); };
此处可以使用apply
或call
。
所以,不用
dao.arrVariable['var1']();
使用dao.arrVariable['var1'].apply(dao, /* array of arguments here */);
或
dao.arrVariable['var1'].call(dao, /* arguments here, separated by commas */);
。getItemQuery可以访问dao的属性
function() { this.getItemQuery('a','b','c','d'); };
中的this指的是function()而不是DAO。需要通过以下方式访问DAO:
dao.arrVariable['var1'] = function() { dao.getItemQuery('a','b','c','d'); };
相关文章:
- 警告 - 全局 THIS 对象的危险使用
- 为什么当我尝试将函数绑定到自身时,“this”对象仍然引用窗口
- 在茉莉花中传递“this”对象流星方法
- Jquery $.ajax 获取响应与将“this”对象嵌套传递到“success”回调函数冲突
- 如何将事件的“this”对象更改为其他函数
- 如何通过锚点链接将“this”对象传递给函数,并将其转换为jQuery对象
- 如何使用绑定事件在按钮单击时获取当前/this对象
- 存储'this'对象中的onclick属性
- AngularJs——设置'this'对象在控制器中的$http调用
- 为什么不是在 JavaScript 中匿名函数之外访问“this”对象的关键字
- 为什么调用array.prototype. foreach .call()时将数组设置为THIS对象不能工作?
- JavaScript 方法链接和 this 对象
- 使用'this'对象构造函数中的变量
- 由事件监听器绑定的函数如何继承' this '对象?
- 如何访问“this”;对象
- while循环和"this"对象
- Javascript send "this"对象作为参数
- 使用“this"对象方法内部的关键字
- Onmouseover和内联函数使用'this'对象
- 使用"for "循环全局"this"对象