close
因為在 JavaScript 裡,function 也是一個變數(物件),所以可以當成參數來傳遞
但是那要呼叫的時候呢?就只能用 call 或是 apply 來呼叫
這裡簡單整理一下重點
1. 第一個參數必須是件物,在呼叫的時候,會指派給該 function 的 this 來使用
2. 第二個之後參數,就是呼叫該 function 時所需要的參數
call 時為一個一個參數
apply 為一個陣列
--
<script type="text/javascript"> /** * call 及 apply 測試 */ var obj = { method_1 : function (n) { // 印出目前 this 的值 console.log(this); console.log("n = " + n); } }; // 物件2,等一下要當成參數傳進 call 及 apply 中 var obj2 = { hello:'world' }; /** * 一般方法呼叫 method_1 * * 結果: * Object { method_1=function()} * n = 1 */ obj.method_1(1); /** * 使用 call 呼叫 method_1 * * 結果: * Object { hello="world"} * n = 2 */ obj.method_1.call(obj2, 2); /** * 使用 apply 呼叫 method_1 * * 結果: * Object { hello="world"} * n = 3 */ obj.method_1.apply(obj2,[3]); </script>
全站熱搜
留言列表