JavaScript之坑了我--函式細節
函式細解:
1. 函式的宣告三種:
a. 普通直接方式:
function say(name){alert(name);}
b. 變數初始化的方式:
var say = function(name){ alert(name);};
c. 原始方式:
var say = new Function(‘name’,” alert(name);”);
注意:c種方式能體現js中“函式也是物件,函式名是指標”。不過這種宣告方式很損效能:第一次是ECMAScript程式碼,第二次是解析傳入建構函式中的字串;故少用。
2. 由於函式也是物件,即變數,所以,我們可以將一個函式作為值進行傳參。
function getSum(sumFunc ,
x,y){
return sumFunc(x ,y);
}
function sum (x ,y){
return x+y;
}
getSum(sum , 2 , 3);//!!!
再深入點:
js函式作為物件,要注意以下屬性:
我們在瀏覽器console中 執行:
Object.getOwnPropertyNames(
function(){….} );
結果:
["length",
"name", "arguments", "caller",
"prototype"]
解析:
length: 函式的引數的個數
name : 當前函式的名字:用在多個函式的迴圈中
arguments : 一個類陣列物件,包含著在函式執行過程中傳入函式中的所有引數,其中一個屬性callee指向當前函式物件,可用在遞迴;
caller :
prototype : 指向原型物件。
然而由此引發我的問題來了:
1. Js中函式引數如何宣告:不確定的引數個數?例如Function(‘’,’’ ‘’,’’ ‘’,’’……)
2. Js函式物件建立時底層如何實現獲取此函式的名字?
3. Js函式開始執行前做了什麼工作:例如將傳參封裝到arguments物件中之類的
目前本人尚未解決,後續。。。。。。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29900383/viewspace-1822704/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JavaScript之坑了我--事件模型細節JavaScript事件模型
- JavaScript之坑了我--BOM模型速知JavaScript模型
- JavaScript之坑了我--事件繫結原理JavaScript事件
- JavaScript之坑了我--定時器用法JavaScript定時器
- 我又掉 Laravel env 函式坑裡了Laravel函式
- JavaScript之坑了我--物件導向預熱JavaScript物件
- JavaScript之坑了我--JSON物件明析JavaScriptJSON物件
- javascript之函式防抖與節流JavaScript函式
- JavaScript之坑了我--閉包原理不過如此JavaScript
- 【JavaScript高階進階】JavaScript變數/函式提升的細節總結JavaScript變數函式
- 淺談javascript函式節流JavaScript函式
- JavaScript之坑了我--instanceof的判斷機制測試JavaScript
- 函式索引使用細節——自定義函式的索引化函式索引
- JavaScript之坑我--陣列原理探析JavaScript陣列
- javascript函式之——splitJavaScript函式
- javascript函式節流是什麼JavaScript函式
- JavaScript中函式防抖、節流JavaScript函式
- JavaScript 節流函式 Throttle 詳解JavaScript函式
- 淺談javascript的函式節流JavaScript函式
- 函式解構引數小細節函式
- 函式索引的使用細節——常數表示式函式索引
- JavaScript之坑了我--閉包助力OOP之模擬私有成員屬性JavaScriptOOP
- JavaScript之坑了我--一張圖看盡原型及底層模擬JavaScript原型
- 我自己的Javascript 庫,封裝了一些常用函式JavaScript封裝函式
- javascript刪除元素節點removeChild()函式JavaScriptREM函式
- JavaScript 中函式節流和函式去抖的講解JavaScript函式
- JavaScript之函式柯理化JavaScript函式
- JavaScript進階之函式JavaScript函式
- Go 最細節篇|記憶體回收又踩坑了Go記憶體
- JS專題之節流函式JS函式
- Vue、Javascript小細節VueJavaScript
- javascript函式節流程式碼例項分享JavaScript函式
- 《JavaScript 闖關記》之函式JavaScript函式
- JavaScript 專題之惰性函式JavaScript函式
- JavaScript 專題之偏函式JavaScript函式
- 柯里化函式之Javascript函式JavaScript
- 效能優化之節流函式---throttle優化函式
- JavaScript 專題之函式記憶JavaScript函式