[教程]JScript中的變數引用規則(補充,函式用法說明) (轉)
[教程]中的變數引用規則(補充,用法說明)
by .com/,">http://www.lostinet.com/,
第一篇:">
我高考語文才496分啊,,,慘。。現在要說些什麼,都不知道。。。
還是用例子開始吧:不過例子和分析,現在寫在一起了。
這個只是補充說明,看不看都沒有關係。不會的還是看看好:)
2。1 -》函式被傳遞
{---{---{---{---{---{---{---{---{---{---{---{---{---{---{---{---
var func=function(){alert("ok")};
function CallFunc(f)
{
f();
}
CallFunc(func);
---}---}---}---}---}---}---}---}---}---}---}---}---}---}---}---}
一般的應用中,傳遞函式是很少見的。但是對於很多動態的應用,傳遞函式就很正常了。
這個例子,func是一個函式。CallFunc(func)時,把func傳遞給CallFunc中的f
所以在
function CallFunc(f)
{
f();
}
中,f是一個函式。所以f()是可以的。實際上就是呼叫function(){alert("ok")};
2。2 -》函式作為方法
{---{---{---{---{---{---{---{---{---{---{---{---{---{---{---{---
var obj={};//var obj=new ();
obj.value=14;
var func=function(number){alert(this.value+number)};
obj.alert=func;
obj.alert(25);
---}---}---}---}---}---}---}---}---}---}---}---}---}---}---}---}
這個例子,說明了函式作為一個的方法,是怎樣使用的。
this是一個特殊的變數,它是一個引數。
當obj.alert(25)時,
其實是執行function(number){alert(this.value+number)};
而這個過程中obj也傳遞過去了,化身為this。
這個過程大家都比較瞭解,所以也不多說了。
要執行物件的方法,只有兩個途徑:
一:obj.method(); 必須有一個“.”的存在。
二:func.apply(obj,args),func.call(obj,arg1,arg2...),這個需要JScript5.5的支援。
2。3 -》函式作為方法,2
{---{---{---{---{---{---{---{---{---{---{---{---{---{---{---{---
var obj={};//var obj=new Object();
obj.value=14;
var func=function(number){alert(this.value+number)};
obj.alert=func;
var method=obj.alert
method(4);
---}---}---}---}---}---}---}---}---}---}---}---}---}---}---}---}
為什麼顯示NaN呢?
雖然method=obj.alert,但是傳遞的,卻只是obj["alert"]本身,即func
所以在執行func中,沒有隱含的物件傳過去給this
this沒有被賦值,在IE中預設是window,在其他變數空間就依賴有this的空間來判斷
2。4 -》函式作為物件使用。
{---{---{---{---{---{---{---{---{---{---{---{---{---{---{---{---
function aaa()
{
alert(this);
}
function aaa.bbb()
{
alert(this);
}
var func=function(){};
func.bbb=aaa;
func.bbb();
func.bbb.bbb();
---}---}---}---}---}---}---}---}---}---}---}---}---}---}---}---}
我沒有精神了,你自己理解吧。。
2。5 -》函式作為物件使用2。
{---{---{---{---{---{---{---{---{---{---{---{---{---{---{---{---
function func(){};
function func.a(){return "a"};
function func.b(){return "b"};
function func.c(){return "c"};
for(var i in func)alert(func[i]());
---}---}---}---}---}---}---}---}---}---}---}---}---}---}---}---}
2。6 -》caller
{---{---{---{---{---{---{---{---{---{---{---{---{---{---{---{---
function Func()
{
alert(Func.caller);
}
function CallFunc()
{
alert(CallFunc.caller);
Func();
}
CallFunc();
---}---}---}---}---}---}---}---}---}---}---}---}---}---}---}---}
因為CallFunc()是全域性執行的,所以沒有函式呼叫CallFunc,所以CallFunc.caller為null
而在Func,是由CallFunc呼叫的,所以第二次顯示CallFunc
2。7 -》不依賴名字,在函式中取函式本身
{---{---{---{---{---{---{---{---{---{---{---{---{---{---{---{---
function CallFunc()
{
alert(CallFunc);
var fs=function(fs){return fs.caller};
fs=fs(fs);
alert(fs);
}
CallFunc();
---}---}---}---}---}---}---}---}---}---}---}---}---}---}---}---}
第一次alert是做個示範。這個是直接引用CallFunc的。
var fs定義了一個很特殊的函式。
當執行fs=fs(fs)時,就取回fs的呼叫者CallFunc,所以fs引用了CallFunc了
2。8 -》arguments
{---{---{---{---{---{---{---{---{---{---{---{---{---{---{---{---
function alertBatch()
{
var args=alertBatch.arguments;
var arr=[];
for(var i=0;i
alert(arr.join(""));
}
alertBatch(1,"a",2,"b",3,"c",4,"d",5,"e");
---}---}---}---}---}---}---}---}---}---}---}---}---}---}---}---}
alertBatch.arguments是呼叫該函式的引數的陣列(不是Array)
根據這個,函式可以處理多個引數的情況。
2。9 -》Function..toString
{---{---{---{---{---{---{---{---{---{---{---{---{---{---{---{---
function Function.prototype.toString()
{
return "object Function";
}
function func()
{
}
alert(func);
---}---}---}---}---}---}---}---}---}---}---}---}---}---}---}---}
函式的其他方面就不多說了。JScript的參考書都有說明。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-992692/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JScript中正則表達函式的說明與應用 (轉)JS函式
- Excel函式應用教程:函式的引數(轉)Excel函式
- 函式呼叫的引數規則與解包函式
- 外層函式的變數直接被巢狀函式引用計算函式變數巢狀
- 13.1 函式中的變數函式變數
- 日期轉換函式的格式引數大小寫規則 (自yangtingkun)函式
- 【教程】(Angular)模版引用變數的魔法Angular變數
- linux中BASH變數的設定規則Linux變數
- JavaScript中的安全變數引用JavaScript變數
- c++中物件的引用作為函式的引數C++物件函式
- Excel函式應用教程:函式的輸入方法(轉)Excel函式
- Excel函式應用教程:函式與公式的概念(轉)Excel函式公式
- 變數名命名規則變數
- 『無為則無心』Python日誌 — 69、補充:logging.basicConfig()函式說明Python函式
- js中 函式引數的 傳值/傳引用 問題JS函式
- perl正規表示式中的特殊變數變數
- indexmerge的補充說明Index
- test函式中的區域性變數函式變數
- VBScript中引用ASP的字串變數字串變數
- 函式呼叫規則總結函式
- Oracle補充日誌及日誌記錄規則Oracle
- 函式外與函式內的變數函式變數
- python變數命名規則Python變數
- Redis Sentinel機制與用法說明【轉】Redis
- Oracle升級中的引數補充Oracle
- javascript變數的宣告以及命名規則JavaScript變數
- Python 快速教程(補充篇03): Python內建函式清單Python函式
- 關於javascript中變數及函式的提升JavaScript變數函式
- 函式中的私有變數和特權方法函式變數
- php函式引用傳遞引數的方法PHP函式
- JS中的"=="轉換規則JS
- 第五章:常用的高階函式和函式的補充語法函式
- VBScript函式補習課 (轉)函式
- PHP匿名函式使用use關鍵詞引用外部空間變數PHP函式變數
- js中在一個函式中引用另一個函式中的函式,可以這麼做JS函式
- Oracle中的替換變數,&變數名,&&變數名說明Oracle變數
- 成員變數/函式指標的用法 (轉)變數函式指標
- js中函式引數值傳遞和引用傳遞JS函式