[英]JavaScript, 'this' reference, when calling object function from anchor tag
這是我的 JS 的簡化版本:
var myObject = function() {
return {
functionOne: function() {
//some other logic here
},
functionTwo: function() {
var self = this;
//some logic here
//then call functionOne
self.functionOne();
}
};
}
然后我在我的 html 正文中有這個:
<a href="#" onclick="myObject.functionTwo()">click me</a>
當我單擊鏈接時,為什么會收到錯誤Uncaught TypeError: Object [some url] has no method 'functionOne' ?
你myObject
是一個函數,需要為了得到這個對象調用
<a href="#" onclick="myObject().functionTwo()">click me</a>
為什么不將myObject
定義為一個對象:
var myObject = {
functionOne: function() {
//some other logic here
},
functionTwo: function() {
var self = this;
//some logic here
//then call functionOne
self.functionOne();
}
};
您看到的錯誤並未反映您顯示的示例代碼。
也就是說,按照您使用代碼的方式,您應該能夠將其簡化為:
var myObject = {
functionOne: function() {
},
functionTwo: function() {
this.functionOne();
}
}
您需要的是立即執行您的功能。 此外,您對self變量的聲明使我認為您正在嘗試創建一個閉包,以便您可以從 functionTwo 訪問 functionOne。 如果是這種情況,那么我認為以下是您所追求的:
var myObject = (function() {
function func1( ) {
}
function func2( ) {
func1();
}
return {
functionOne: func1,
functionTwo: func2
};
}());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.