讓我們先來看看在JavaScript代碼=>JavaScript對象在匿名函數未定義
function ConstructNodes(className,hiddenId,alertMsg,formName){
this.className = className;
this.hiddenId = hiddenId;
this.alertMsg = alertMsg;
this.formName = formName;
}
ConstructNodes.prototype.getId = function(){
var nodes = document.getElementsByClassName(this.className);
for (var i=0;i<nodes.length;i++){
nodes[i].onclick = function(){
var r = confirm(this.alertMsg);
if (r==true){
alert(this.hiddenId); // undefined
} else {
return;
}
};
}
};
var obj = new ConstructNodes("className","hiddenId","Are you sure ?","formName");
obj.getId();
我在這種情況下,問題是定義對象下的getId的匿名函數未定義,我怎樣才能解決這種情況呢?謝謝
可能重複(HTTP://計算器
可以通過在外部範圍和訪問它在內部限定了
var
,這樣解決了.com/questions/2079703/this-in-event-handlers-for-another-object) –@FelixKling當我與實現類無關時它是如何重複的 – tnanoba
@Tornike,你的''ConstructNodes''函數是類 – user907860