我想在JavaScript中編寫一個幫助器方法。如果發送函數或函數引用,它的行爲應該是不同的。找出函數是匿名還是在對象中定義
我想喜歡用這樣的:
helper('div', function() { return false; })
helper('div', obj.fn)
我想不通的是:如何幫助函數裏面分辨出兩者之間的區別?
我認爲這是由於的JavaScript首先計算obj.fn發送它之前。 我發現的唯一的解決方法是發送obj.fn作爲OBJ,即
helper('div', { fn: obj.fn })
然後我可以用typeof來區分兩者的區別。但我真的很喜歡某種方式讓它沒有額外的對象聲明。
你有一個特定的原因,爲什麼你想分開兩個功能? – Boldewyn 2009-12-17 11:13:32
「如果發送函數或函數的引用,它的行爲應該不同」 - 這是什麼意思?你如何定義「功能」和「功能參考」之間的區別?在你的第一個例子中,傳遞給helper的參數將是對函數的引用。 – 2009-12-17 11:55:47
@Tim Down,這讓我感到困惑,但我認爲提問者認爲傳遞一個匿名函數是傳遞值並傳遞一個對象方法是傳遞通過引用,這當然是錯誤的,但它是許多js開發人員犯的錯誤。 – 2009-12-17 12:24:06