javascript基礎(函式屬性arguments,方法:call,apply)(二十)
1.函式屬性arguments,方法:call,apply:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
/*
* 除了this,在呼叫函式時,瀏覽器還傳遞了另一個隱含的引數
* 還有一個引數叫做arguments
*
* arguments是一個類陣列物件,在它裡邊儲存著函式執行時的實參
* 函式的所有的實參都在arguments中儲存,
* 通過arguments即使不定義形參也可以使用引數
*
* 屬性:
* callee
* - arguments中有一個屬性 callee,代表的是當前正在呼叫的函式物件
*
*/
function fun(a,b,c){
//Array.isArray() 可以用來檢查一個物件是否是一個陣列
//console.log(Array.isArray(arguments));
//獲取實參的數量
//console.log(arguments.length);
//獲取指定的實參
//實參會儲存到arguments物件中指定的位置
//console.log(arguments[2]);
console.log(arguments.callee == fun);
}
//fun("hello",123,true);
function fun2(a , b){
console.log("a = "+a +" , b = "+b);
//console.log(this);
}
/*
* 函式物件的方法:
* call
* apply
* - 當呼叫函式物件的call和apply時都會導致函式立即執行,
* 就相當於呼叫了函式一樣
* - 如果通過call和apply去呼叫一個函式,則call和apply中的第一個引數
* 將會是函式中的this
* - 區別:
* call的引數,需要一個一個列出來
* apply的引數,需要封裝為一個陣列傳遞
*
*
* this的不同的情況
* - 以函式形式呼叫,this是window
* - 以方法的形式呼叫,誰呼叫方法this就是誰
* - 以建構函式呼叫,this就是新建立的那個物件
* - 通過call和apply呼叫時,第一個引數會成為this
*/
var obj = {};
//fun2(123,456);
//在call方法中可以將實參作為call的第二個以後的引數,傳遞給函式
//fun2.call(obj,1,2);
//apply的引數不能一個一個的傳,需要儲存到一個陣列中統一傳遞
//fun2.apply(obj , [1 , 2]);
var obj2 = {
name : "沙和尚",
sayName : function(){
console.log(this.name);
}
};
name = "window中的name";
obj2.sayName.call(window);
</script>
</head>
<body>
</body>
</html>
相關文章
- 函式式JavaScript(3):.apply()、.call() 和arguments物件函式JavaScriptAPP物件
- JavaScript函式的apply方法與call方法淺析JavaScript函式APP
- JavaScript之Arguments物件暫存函式引數與屬性JavaScript物件函式
- JavaScript中bind、call、apply函式用法詳解JavaScriptAPP函式
- JavaScript—call, apply, bind 函式能幹啥?(全)(20)JavaScriptAPP函式
- JavaScript 函式 name 屬性JavaScript函式
- JavaScript 函式 length 屬性JavaScript函式
- js中call、apply、bind函式JSAPP函式
- 理解JS函式之call,apply,bindJS函式APP
- 快速掌握javascript的apply()和call()方法JavaScriptAPP
- Javascript - apply、call、bindJavaScriptAPP
- 回味JS基礎:call apply 與 bindJSAPP
- 手寫JS函式的call、apply、bindJS函式APP
- JavaScript中call,apply,bind方法的總結。JavaScriptAPP
- JavaScript中call,apply,bind方法的總結JavaScriptAPP
- javascript基礎(函式)(十四)JavaScript函式
- JavaScript函式及基礎JavaScript函式
- JavaScript-apply、bind、callJavaScriptAPP
- 函式中的apply,call入門介紹函式APP
- javascript函數語言程式設計 : call 和 applyJavaScript函數程式設計APP
- JavaScript進階教程(4)-函式內this指向解惑call(),apply(),bind()的區別JavaScript函式APP
- javascript基礎(正規表示式)(二十四)JavaScript
- 回顧JavaScript基礎——函式JavaScript函式
- JavaScript中的call()和apply()JavaScriptAPP
- [譯] Javascript: call()、apply() 和 bind()JavaScriptAPP
- JavaScript重識bind、call、applyJavaScriptAPP
- JavaScript 中的 apply、call、bindJavaScriptAPP
- 《JavaScript設計模式與開發實踐》基礎篇(1)—— this、call 和 applyJavaScript設計模式APP
- 手寫系列:call、apply、bind、函式柯里化APP函式
- call和apply第一個引數為null/undefined,函式this指向全域性物件APPNullUndefined函式物件
- JS基礎總結(4)——this指向及call/apply/bindJSAPP
- 詳解 JavaScript的 call() 和 apply()JavaScriptAPP
- javascript -- apply/call/bind的區別JavaScriptAPP
- Javascript - 全面理解 caller,callee,call,applyJavaScriptAPP
- 理解JavaScript中的arguments,callee,caller,applyJavaScriptAPP
- 深入 call、apply、bind、箭頭函式以及柯里化APP函式
- JavaScript:Object屬性方法JavaScriptObject
- javascript call()函式用法簡單介紹JavaScript函式