通過函數
回答
您正在執行的功能和它的返回值的財產分配。您需要將該函數的引用分配給該屬性。更改add
功能:
function add(f, fun) {
ob[f] = fun; //No invoking parentheses!
}
這裏是一個updated fiddle。
如果您在原始撥弄一下控制檯,你得到什麼錯誤的提示:
Uncaught TypeError: Property 'hi' of object
#<Object>
is not a function
添加您的函數作爲對象的屬性:
ob['hi'] = function() {
alert('hello')
};
或
ob[funname] = fun;
如果函數是別處定義。
不要寫一個add
功能只是設置一個屬性。用自定義setter替換該語言的標準功能不會使代碼更具可讀性。
而且不要忘了,你可以在JavaScript中定義類:
function Rect(x,y,w,h){
this.x = x;
this.y = y;
this.w = w;
this.h = h;
}
Rect.prototype.contains = function(x, y) {
return x>=this.x && x<=this.x+this.w && y>=this.y && y<=this.y+this.h;
};
爲new Rect(0, 1, 2, 3)
創建的所有對象都具有contains
功能。
感謝您的回答,但我會需要設置多個屬性和我想用功能來做這件事 – Shawn31313 2012-07-13 08:05:05
除了作業之外,我沒有看到使用函數來替換該語言的標準特徵的理由。如果您正在建立圖書館,請遵循最佳做法。 – 2012-07-13 08:09:50
- 1. 通過函數
- 2. 通過函數
- 3. 通過函數
- 4. 通過函數
- 5. [R通過函數
- 6. 通過void函數
- 7. 通過javascript函數
- 8. Response.Write函數不工作,當我通過主函數通過Jquery.post()
- 9. 通過函數導航到angular2中的DataURI通過函數
- 10. 通過函數參數
- 11. Elixir - 通過函數參數
- 12. 通過函數指針重載函數
- 13. 通過socket.io調用函數
- 14. PHP函數變量通過
- 15. 這個通過函數?
- 16. 通過函數調用
- 17. 通過函數體評價
- 18. jQuery函數,通過innerHTML的
- 19. 通過Lisp傳遞函數
- 20. 通過遞歸函數
- 21. 通過XML調用函數
- 22. 通過函數寫SESSION
- 23. 問題通過函數
- 24. 通過類傳遞函數
- 25. 通過函數在Eclipse中
- 26. 通過函數傳遞RDD
- 27. 通過Response.Write()回寫函數
- 28. 通過函數cakephp 2
- 29. java通過引用函數
- 30. 集團通過函數列
爲什麼謝謝主席先生。 – Shawn31313 2012-07-13 08:05:24
@ Shawn31313 - 不客氣,很高興我能幫助:) – 2012-07-13 08:08:00
你幫助很大,因爲現在我終於固定的一個問題,我與圖書館建設IM – Shawn31313 2012-07-13 08:09:09