功能這是我有:傳遞一個對象的它的另一個功能
var Person = function(fname, lname) {
this.fname = fname;
this.lname = lname;
};
Person.prototype = {
getFullName: function() {
return this.fname + " " + this.lname;
},
doStuff: function(stuff) {
return stuff();
}
};
var john = new Person("John", "Doe");
的doStuff
功能的工作原理與其他功能,但這樣做下面的回報undefined undefined
:
console.log(john.doStuff(john.getFullName));
這有什麼錯我有什麼,以及如何改變它以使其工作? 謝謝。
嘗試在'getFullName()'函數中執行'console.log(this)'並查看它回調的內容;) – saadq
如果只接收它自己的方法,則可以傳遞一個字符串'john.doStuff 「getFullName」)',然後執行'return this [stuff]();'。或者你可以做到這一點,如果你得到一個字符串,它會嘗試使用它作爲方法名稱,否則它會調用它。 –