我有一些代碼在其中通過使用this
來引用同一對象中的方法。我已經驗證this
通過使用下面的代碼示例引用當前對象。JavaScript對象中的這個關鍵字沒有指向那個對象
在我的情況我有類似的代碼,但它與很多其他第三方ASP.Net控件,它們發出自己的JavaScript。但在我的情況下,如果使用this
,則使用相同的方法,因爲this
指向「Sys.UI.DomEvent」,所以它無法工作。
<!DOCTYPE html>
<html>
<body>
<p>Creating and using an object method.</p>
<p>An object method is a function definition, stored as a property value.</p>
<p id="demo"></p>
<script>
var person = {
firstName: "Sunil",
lastName : "Kumar",
id : 5566,
fullName : function fullName() {
return this.newName(this.firstName + " " + this.lastName);
},
newName : function newName(nm) {
return 'new ' + nm;
}
};
document.getElementById("demo").innerHTML = person.fullName();
</script>
</body>
</html>
在我的情況頁面導致錯誤,錯誤如下。
我有類似的代碼如上述代碼段。我的代碼如下所示。 此外,單擊按鈕時會調用下面對象中的函數,並且可能這就是爲什麼this
未引用對象AutoSizedStandardDialogs
對象。單擊按鈕時可能有另一種方法來引用對象AutoSizedStandardDialogs
!
var AutoSizedStandardDialogs = {
applyAutoSizeLogic: function applyAutoSizeLogic() {
//code omitted
},
radalert: function radalert() {
this.applyAutoSizeLogic();
//code omitted
}
}
問題:使用this
我的情況爲什麼不工作,我怎麼能強迫this
指向由含有這些函數的對象?
完美地工作[這裏](https://jsfiddle.net/tusharj/8190p98m/) – Tushar
對不起,我需要改變的代碼。在我的情況下,代碼是不同的,但我認爲它是這樣的。我會盡快修改的。 – Sunil
這也適用。檢查[這裏](https://jsfiddle.net/tusharj/8190p98m/1/),如果你不能重現這個問題,試試下面的答案,這將解決你的問題 – Tushar