将方法传递给函数
在 Javascript 中,我试图将类成员传递给 jQuery 函数,但不知何故,该函数中的“this”对象变得混乱。这是代码:
function Hints()
{
this.markProduct = function() { alert('hi'); };
this.selectProduct = function() { this.markProduct(); };
}
当我使用 this 调用此代码时:
oHints = new Hints();
oHints.selectProduct();
它工作得很好,“selectProduct”函数中的“this”对象引用了 Hints 对象。 但是当我尝试这个时:
oHints = new Hints();
$('#prodquery').keydown(oHints.selectProduct);
“selectProduct”函数中的“this”对象引用了触发 keydown 事件的 html 对象。
有人知道吗?我很困惑:/
In Javascript I'm trying to pass a class member to a jQuery function, but somehow the 'this' object in that function gets messed up. This is the code:
function Hints()
{
this.markProduct = function() { alert('hi'); };
this.selectProduct = function() { this.markProduct(); };
}
When I call this code using this:
oHints = new Hints();
oHints.selectProduct();
It works just fine and the 'this' object in the 'selectProduct' function refers to the Hints object.
But when I try this:
oHints = new Hints();
$('#prodquery').keydown(oHints.selectProduct);
The 'this' object in the 'selectProduct' function refers to the html object that fired the keydown event.
Does anyone have a clue? I'm puzzled :/
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
改为执行此操作:
然后阅读此内容以了解
此操作的说明
在不同的环境下工作。Do this instead:
And then read this for explanation of how
this
works in different contexts.