js007-函式表示式
本章內容
1、函式表示式的特徵
2、使用函式實現遞迴
3、使用閉包定義私有量
定義函式的方式有兩種:一:函式宣告,二:函式表示式
函式宣告:
function functionname( arg0, arg1, arg2)elseelse if (value1 > value2) else;
}(i);
return result;
定義乙個匿名函式,並將執行該匿名函式的結果傳給陣列,匿名函式有乙個引數num,是最終要返回的值。
7.2.2 關於this物件
this物件是在執行時基於函式的執行環境繫結的:在全域性函式中,this等於window,當函式被某個兌現的的方法呼叫是,this等於那個物件。匿名函式的執行環境具有全域性性。
var name = "the windos";
var object = ();//出錯
(function())();
私有作用域可以用於歷史需要一些變數時:
function outputnumbers(count))();
alert(i); //導致錯誤
for迴圈外面插入了乙個私有作用域,匿名函式中定義的任何變數都會在執行結束時被銷毀
7.4私有變數(舉例子,還未完成)
在js中,所有物件屬性都是公有的。不過,有乙個私有變數的概念。任何函式中定義的變數,都可以認為是私有變數。因為外部函式無法訪問該變數
7.4.1 靜態私有變數
初始化乙個未宣告的變數總是會建立乙個全域性變數,全域性變數能夠在私有作用域外被訪問到。在嚴格模式下,未經宣告的變數賦值會導致錯誤
7.4.2模組模式
模組模式是為單例建立私有變數和特權方法。單例:只有乙個例項的物件。
7.4.3 增強的模組模式
在返回物件之前加入對其增強的**。這種增強的模組模式適用那些單例必須是魔種型別的例項,同時還必須新增某些屬性和方法對其加以曾強的情況
JS函式表示式
1.遞迴 function digui num else var d digui digui null d 3 改進 用arguments.callee num 1 代替 digui num 1 arguments.callee 是指向引數所在的函式的指標,code如下 function digui...
JS 函式表示式
引數1,引數2.call使用語法 函式名 方法名.call 物件,屬性1,屬性2.作用 可以改變this的指向 不同點 引數傳遞方式不同 bind是複製乙個方法或者函式 xw.say.call xh 注 math.random 返回介於 0 包含 1 不包含 之間的乙個隨機數 函式中幾個屬性 了解 ...
函式表示式
函式定義有以下兩種方式 一種是函式宣告,一種是函式表示式。函式宣告 在執行 之前會先讀取函式宣告,即函式宣告提公升。函式表示式 常用語法形式是常規的變數賦值語句,即建立乙個匿名函式並賦值給乙個變數。函式表示式在使用之前必須賦值,否則會出錯,這點與函式宣告提公升不同。能夠將匿名函式作為其他函式的值進行...