我有一個範圍界定問題。我有一個簡單的對象文字函數,有很多方法。我想打電話給調用對象文字函數與此返回TypeError
var myObjectFunc = function() {
return {
method1: function() {
// call method4 here and pass value
},
method2: function() {
},
method3: function() {
},
method4: function() {
}
}
}
我試圖與 '本' 無數的方式方法4(),從方法1():
嘗試之一:
var myObjectFunc = function() {
var that = this;
return {
method1: function() {
// call method4 here and pass value
var myName = 'Peter';
that.method4(myName);
},
method2: function() {
},
method3: function() {
},
method4: function(val) {
console.log(val);
}
}
}
嘗試二:
var myObjectFunc = function() {
return {
method1: function() {
// call method4 here and pass value
var myName = 'Peter';
this.method4(myName);
},
method2: function() {
},
method3: function() {
},
method4: function(val) {
console.log(val);
}
}
}
兩者都返回錯誤:
TypeError: that.method4 is not a function
你的第二次嘗試似乎正在工作。 'myObjectFunc()。method1()'給出''Peter''。 –
你是如何調用'method1()'的? – Thomas