我們有什麼辦法可以在js中這樣做嗎?是否有可能在JavaScript中調用「對象」
const pseudoFunction = {};
pseudoFunction();
也許添加方法,構造函數或其他東西到pseudoFunction
?
我們有什麼辦法可以在js中這樣做嗎?是否有可能在JavaScript中調用「對象」
const pseudoFunction = {};
pseudoFunction();
也許添加方法,構造函數或其他東西到pseudoFunction
?
編號
函數是對象,但並非所有對象都是函數。你只能調用函數。
你可以看到the process for creating a function object in the spec。重要的是要注意步驟3:
將F的[[Class]]內部屬性設置爲「Function」。
不能設置內部物業自己,所以你不能轉換爲非功能到一個函數。
確切而明確。忘了一個字***真棒*** – Jai
最好的答案,謝謝;) –
不,你不能。你可以自己嘗試一下,你會得到錯誤。
const something = {};
something();
你不能做到這一點與您展示的是什麼。你不能調用一個對象。但是你可以將屬性附加到函數中(但是,這通常是一種不好的模式,你試圖以某種錯誤的方式實現)。
let myFunction = function() {
console.log(myFunction.apples);
// Remember, _this_ here is not the function, but the caller scope
};
myFunction.apples = "oranges";
再一次,雖然這是可行的,但你想達到的目標可能是你可以用慣用的方法做到的。
沒有,但你可以做相反:先創建函數,然後分配屬性和方法:
function doSomething() {
console.log('done it');
}
doSomething.friend = 'John';
doSomething.printFriend = function() {
console.log(this.friend);
}
// Make some calls:
doSomething();
doSomething.printFriend();
你爲什麼要這麼做?您的問題可能有更好的解決方案。例如,JavaScript中的所有功能都是對象。 – nils
沒有意義,你究竟在努力完成什麼? – epascarello
這只是問題,沒有任何實際用法 –