欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

javascript中call,apply,callee,caller用法實例分析

 更新時間:2019年07月24日 09:40:28   作者:Johnny丶me  
這篇文章主要介紹了javascript中call,apply,callee,caller用法,結(jié)合實例形式分析了javascript中call,apply,callee,caller功能、使用方法及相關操作注意事項,需要的朋友可以參考下

本文實例講述了javascript中call,apply,callee,caller用法。分享給大家供大家參考,具體如下:

實踐一:call,apply 用來讓一個對象去調(diào)用本不屬于自己的方法,兩者都可以傳遞參數(shù),call的參數(shù)是列表形式,apply的參數(shù)是數(shù)組形式

var person = {
 "name":"Tom",
 "say":function(){
 console.log("person say");
 },
 "count":function(x,y,z){
 console.log('x= ' + x + ', y= ' + y + ', z= ' + z);
 },
 "sayName":function(){
 console.log(this.name);
 }
}
// 下面的示例是數(shù)組 arr 去調(diào)用person的say方法 , 這里call用來讓數(shù)組調(diào)用本不屬于它自己的方法
var arr = [1,2];
person.say.call(arr);
// call 還可以傳遞參數(shù)
person.count.call(arr,1,2,3); // x= 1, y= 2, z= 3
// apply 還可以這樣
person.count.apply(arr,[1,2,3]); // x= 1, y= 2, z= 3

實踐二:call,apply 用來修改this,   同樣引用上例的person對象

var program = {"name":"AlphaGo"}
person.sayName.call(program); // AlphaGo
person.sayName.apply(program); // AlphaGo

實踐三:call,apply把偽數(shù)組轉(zhuǎn)換為數(shù)組

// call,apply 把偽數(shù)組轉(zhuǎn)換為數(shù)組
var wArr = {0:"hello",1:"world","length":2};
var arr1 = Array.prototype.slice.call(wArr);
var arr2 = Array.prototype.slice.apply(wArr);
console.log(arr1); // [hello,world]
console.log(arr2); // [hello,world]

這里找到一篇詳細的  關于偽數(shù)組的文章

實踐四:單純的arguments對象

// 有關arguments
function count(a,b,c){
 console.log(arguments.length);
 if(count.length === arguments.length) {
 console.log('實際參數(shù)與形參個數(shù)相同');
 }else{
 console.log('實際參數(shù)與形參個數(shù)不同');
 }
}
count(1,2,3); // 實際參數(shù)與形參個數(shù)相同
count(1,2); // 實際參數(shù)與形參個數(shù)不同
/*
這里count.length 表示形參個數(shù)
arguments.length 表示實參個數(shù)
*/

實踐五:caller 用于查看,函數(shù)本身被哪個函數(shù)調(diào)用

function fn1(){
 if(fn1.caller){
 console.log(fn1.caller.name + " 是函數(shù)fn1的調(diào)用者");
 }else{
 console.log("直接執(zhí)行");
 }
}
function fn2(){
 fn1();
};
fn2(); // fn2是是函數(shù)fn1的調(diào)用者

實踐六:callee 返回正被執(zhí)行的 Function 對象,常用于匿名函數(shù)的遞歸與arguments一起配合使用。

var sum = function(n){
 if(n>0) {
 return n + arguments.callee(n-1);
 }
 return 0;
};
var total = sum(10);
console.log(total); // 55
// arguments.callee 代指函數(shù)自身。
function test(){
 console.log(arguments.callee);
}
test(); // 輸出函數(shù)自身的字符串表達式

感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運行工具http://tools.jb51.net/code/HtmlJsRun測試上述代碼運行效果。

更多關于JavaScript相關內(nèi)容可查看本站專題:《javascript面向?qū)ο笕腴T教程》、《JavaScript錯誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學運算用法總結(jié)

希望本文所述對大家JavaScript程序設計有所幫助。

相關文章

  • JS刷新框架外頁面七種實現(xiàn)代碼

    JS刷新框架外頁面七種實現(xiàn)代碼

    JS刷新框架想必大家們都有所了解,如何是刷新框架外頁面想必大家有所陌生啦,沒關系本文的出現(xiàn)將解決大家的燃眉之急,感興趣的你可不要錯過了哈
    2013-02-02
  • Nest.js快速啟動API項目過程詳解

    Nest.js快速啟動API項目過程詳解

    這篇文章主要為大家介紹了Nest.js快速啟動API項目過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • js實現(xiàn)簡單登錄功能的實例代碼

    js實現(xiàn)簡單登錄功能的實例代碼

    js驗證用戶身份,登錄成功之后等待一定秒數(shù),跳轉(zhuǎn)到操作頁面。使用window函數(shù)。代碼如下
    2013-11-11
  • js中scrollTop()方法和scroll()方法用法示例

    js中scrollTop()方法和scroll()方法用法示例

    這篇文章主要介紹了js中scrollTop()方法和scroll()方法用法,結(jié)合實例形式分析了scrollTop()方法和scroll()方法滾動操作的用法與相關操作技巧,需要的朋友可以參考下
    2016-10-10
  • 使用?JavaScript?Promise?讀取?Github?用戶數(shù)據(jù)

    使用?JavaScript?Promise?讀取?Github?用戶數(shù)據(jù)

    這篇文章主要介紹了使用JavaScript?Promise讀取Github用戶數(shù)據(jù),文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • JavaScript中concat復制數(shù)組方法淺析

    JavaScript中concat復制數(shù)組方法淺析

    在本篇文章里小編給大家總結(jié)了關于JavaScript中concat復制數(shù)組方法知識點,有需要的朋友們可以學習下。
    2019-01-01
  • vscode工具函數(shù)idGenerator使用深度解析

    vscode工具函數(shù)idGenerator使用深度解析

    這篇文章主要為大家介紹了vscode工具函數(shù)idGenerator使用深度解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • JavaScript獲得頁面base標簽中url的方法

    JavaScript獲得頁面base標簽中url的方法

    這篇文章主要介紹了JavaScript獲得頁面base標簽中url的方法,涉及javascript中元素的獲取及href屬性的使用技巧,需要的朋友可以參考下
    2015-04-04
  • javascript下對于事件、事件流、事件觸發(fā)的順序隨便說說

    javascript下對于事件、事件流、事件觸發(fā)的順序隨便說說

    向同一個標簽 動態(tài)的添加事件是 執(zhí)行的順序在ie和其他非ie內(nèi)核的瀏覽器有所不同 ie是“先進先出 ” 就是最先添加的最先執(zhí)行,其他非ie內(nèi)核的瀏覽器是 “先進后出”,就是 最后添加的事件 先執(zhí)行。
    2010-07-07
  • JS按條件 serialize() 對應標簽的使用方法

    JS按條件 serialize() 對應標簽的使用方法

    serialize()方法通過序列化表單值,創(chuàng)建標準的URL編碼文本字符串,它的操作對象是代表表單元素集合的jQuery 對象。下面通過本文給大家介紹JS按條件 serialize() 對應標簽的相關知識,感興趣的的朋友一起看看吧
    2017-07-07

最新評論