![](/img/trans.png)
[英]How to access class member variables inside an event handler defined in a class prototype - Javascript
[英]How do I access member variables inside of an event in Javascript
我有以下javascript:
var testObj = function() {
this.test1 = "123";
}
testObj.prototype = {
myFunc: function() {
var input = $('<input type=button value="clickme" />');
$('body').append(input);
input.click(function () {
alert(this.test1);
});
}
}
$(document).ready( function() {
var t = new testObj();
t.myFunc();
});
我知道為什么alert
語句顯示未定義,但是如何使它顯示test1
變量的實際值。
jsFiddle具有示例代碼。
你可以這樣做
myFunc: function() {
var self = this;
var input = $('<input type=button value="clickme" />');
$('body').append(input);
input.click(function () {
alert(self.test1);
});
},
當您在點擊功能中說this
句話時, this
指的是被點擊的項目。 我this
設置了self
,因此您可以在點擊功能中安全地使用self
嘗試創建對對象的引用以訪問它, this
在事件上引用了發送者:
myFunc: function() {
var input = $('<input type=button value="clickme" />');
$('body').append(input);
var obj = this;
input.click(function () {
alert(obj.test1);
});
var testObj = function() {
test1 = "123";
}
testObj.prototype = {
myFunc: function() {
var input = $('<input type=button value="clickme" />');
$('body').append(input);
input.click(function () {
alert(test1);
});
}
}
$(document).ready( function() {
var t = new testObj();
t.myFunc();
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.