亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > JavaScript > 正文

Javascript中的call()方法介紹

2024-05-06 16:16:51
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Javascript中的call()方法介紹,本文講解了Call() 語法、Call() 參數、Javascript中的call()方法、Call()方法的實例等內容,需要的朋友可以參考下
 

在Mozilla的官網中對于call()的介紹是:

復制代碼代碼如下:

call() 方法在使用一個指定的this值和若干個指定的參數值的前提下調用某個函數或方法.

Call() 語法
復制代碼代碼如下:

fun.call(thisArg[, arg1[, arg2[, ...]]])

 

Call() 參數

thisArg

復制代碼代碼如下:

在fun函數運行時指定的this值。需要注意的是,指定的this值并不一定是該函數執行時真正的this值,如果這個函數處于非嚴格模式下,則指定為null和undefined的this值會自動指向全局對象(瀏覽器中就是window對象),同時值為原始值(數字,字符串,布爾值)的this會指向該原始值的自動包裝對象。

arg1, arg2, ...
復制代碼代碼如下:

指定的參數列表。

 

Javascript中的call()方法

先不關注上面那些復雜的解釋,一步步地開始這個過程。

Call()方法的實例

于是寫了另外一個Hello,World:

復制代碼代碼如下:

function print(p1, p2) {
    console.log( p1 + ' ' + p2);
}
print("Hello", "World");
print.call(undefined, "Hello", "World");

兩種方式有同樣的輸出結果,然而,相比之下call方法還傳進了一個undefined。

 

接著,我們再來看另外一個例子。

復制代碼代碼如下:

var obj=function(){};
function print(p1, p2) {
    console.log( p1 + ' ' + p2);
}

 

print.call(obj, "Hello", "World");

 

只是在這里,我們傳進去的還是一個undefined,因為上一個例子中的undefined是因為需要傳進一個參數。這里并沒有真正體現call的用法,看看一個更好的例子。

復制代碼代碼如下:

function print(name) {
    console.log( this.p1 + ' ' + this.p2);
}

 

var h={p1:"hello", p2:"world", print:print};
h.print("fd");

var h2={p1:"hello", p2:"world"};
print.call(h2, "nothing");

 

call就用就是借用別人的方法、對象來調用,就像調用自己的一樣。在h.print,當將函數作為方法調用時,this將指向相關的對象。只是在這個例子中我們沒有看明白,到底是h2調了print,還是print調用了h2。于是引用了Mozilla的例子

復制代碼代碼如下:

function Product(name, price) {
    this.name = name;
    this.price = price;

 

    if (price < 0)
        throw RangeError('Cannot create product "' + name + '" with a negative price');
    return this;
}

function Food(name, price) {
    Product.call(this, name, price);
    this.category = 'food';
}
Food.prototype = new Product();

var cheese = new Food('feta', 5);
console.log(cheese);


在這里我們可以真正地看明白,到底是哪個對象調用了哪個方法。例子中,使用Food構造函數創建的對象實例都會擁有在Product構造函數中添加的 name 屬性和 price 屬性,但 category 屬性是在各自的構造函數中定義的。

 

 

復制代碼代碼如下:

function print(name) {
    console.log( this.p1 + ' ' + this.p2);
}

 

var h2= function(no){
    this.p1 = "hello";
    this.p2 = "world";
    print.call(this, "nothing");
};
h2();

 

這里的h2作為一個接收者來調用函數print。正如在Food例子中,在一個子構造函數中,你可以通過調用父構造函數的 call 方法來實現繼承。

至于Call方法優點,在《Effective JavaScript》中有介紹。

1.使用call方法自定義接收者來調用函數。
2.使用call方法可以調用在給定的對象中不存在的方法。
3.使用call方法可以定義高階函數允許使用者給回調函數指定接收者。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲电影av在线| 久久影视电视剧免费网站清宫辞电视| 欧美视频二区36p| 亚洲免费成人av电影| 欧美有码在线视频| 午夜精品久久久久久久99热浪潮| 91国语精品自产拍在线观看性色| 亚洲精品美女在线| 欧美另类极品videosbestfree| 国产91色在线播放| 欧美在线亚洲在线| 尤物yw午夜国产精品视频| 中文字幕v亚洲ⅴv天堂| 欧美激情中文字幕在线| 91精品视频网站| 丝袜美腿精品国产二区| 欧美精品少妇videofree| xxav国产精品美女主播| 国产欧美精品在线播放| 日韩在线视频导航| 狠狠躁夜夜躁人人躁婷婷91| 欧美国产日韩xxxxx| 国精产品一区一区三区有限在线| 91啪国产在线| 91美女高潮出水| 国产精品va在线播放我和闺蜜| 91在线观看免费网站| 久久欧美在线电影| 91精品国产色综合| 色偷偷亚洲男人天堂| 中文字幕欧美日韩| 97视频网站入口| 狠狠爱在线视频一区| 亚洲免费福利视频| 亚洲国产一区自拍| 亚洲欧美在线看| 日韩高清免费观看| 国产欧美欧洲在线观看| 在线观看国产精品91| 欧美午夜视频一区二区| 久久精品精品电影网| 久久久久国色av免费观看性色| 亚洲欧美一区二区精品久久久| 亚洲第一区中文99精品| 欧美性猛交xxxx乱大交3| 91人人爽人人爽人人精88v| 性欧美xxxx视频在线观看| 国产精品福利观看| 久久av资源网站| 中文字幕av日韩| 欧美在线激情网| 欧美激情精品久久久久久免费印度| 亚洲深夜福利视频| 欧美老女人bb| 在线精品国产成人综合| 日韩精品视频观看| 成人黄色网免费| 亚洲视频在线观看免费| 成人在线免费观看视视频| 国产性色av一区二区| 日韩在线播放视频| 亚洲欧洲一区二区三区久久| 国产一区二区三区在线免费观看| 91精品中文在线| 国内精品久久久久久| 欧美精品在线第一页| 九九热精品视频在线播放| 在线丨暗呦小u女国产精品| 欧美午夜久久久| 亚洲第一精品电影| 亚洲福利在线视频| 国产成人一区二区三区小说| 国产精品美女主播在线观看纯欲| 久久精品视频一| 亚洲wwwav| 国产精品海角社区在线观看| 欧美乱大交xxxxx| 久久不射电影网| 欧美日韩性视频在线| 丝袜一区二区三区| 欧美性xxxxx| 久久久久国色av免费观看性色| 久久精品中文字幕免费mv| 97精品国产97久久久久久| 成人午夜小视频| 亚洲系列中文字幕| 国产精品专区h在线观看| 九九热99久久久国产盗摄| 精品视频在线播放免| 国产剧情日韩欧美| 在线精品播放av| 91亚洲国产成人久久精品网站| 91在线视频九色| 欧美中文字幕在线视频| 亚洲最新av在线| 一本大道香蕉久在线播放29| 午夜精品一区二区三区在线视频| 国产精品自产拍在线观看| 中文字幕欧美亚洲| 亚洲欧洲第一视频| 一级做a爰片久久毛片美女图片| 91在线直播亚洲| 久久久久久国产精品三级玉女聊斋| 91亚洲精品一区| 日韩第一页在线| 日韩美女视频免费看| 久久91精品国产91久久跳| 国产一区二区丝袜高跟鞋图片| 亚洲成人xxx| 久久人人爽人人爽人人片av高请| 久久久精品一区二区三区| 成人xvideos免费视频| 中文字幕久热精品视频在线| 国产视频一区在线| 国产精品一区专区欧美日韩| 欧美国产中文字幕| 亚洲欧美第一页| 97视频在线观看视频免费视频| 国产综合久久久久久| 3344国产精品免费看| 亚洲成人黄色在线| 亚洲天堂第二页| 亚洲精品视频播放| 福利视频一区二区| 精品国产乱码久久久久久天美| 欧美精品日韩三级| 欧美日韩视频免费播放| 欧美成人一二三| 国产欧美最新羞羞视频在线观看| 日韩欧美在线视频免费观看| 97国产真实伦对白精彩视频8| 国产久一一精品| 欧美日韩免费区域视频在线观看| 国产在线观看一区二区三区| 亚洲区在线播放| 欧美性精品220| 国产成人欧美在线观看| 日本精品免费观看| 成人黄色在线播放| 97国产真实伦对白精彩视频8| 国产精品毛片a∨一区二区三区|国| 热久久这里只有| 亚洲欧美日韩中文在线制服| 国产亚洲成av人片在线观看桃| 日韩精品免费电影| 欧美另类高清videos| 欧美午夜片欧美片在线观看| 久久精品国产清自在天天线| 中文字幕av一区| 久久久国产视频91| 日韩美女视频中文字幕| 91网站在线免费观看| 国产精品视频成人| 亚洲变态欧美另类捆绑| 国产mv免费观看入口亚洲| 亚洲精品在线观看www| 国产精品久久久久久久久久久久| 亚洲аv电影天堂网| 4438全国亚洲精品在线观看视频| 久久久精品欧美| 国内精品模特av私拍在线观看| 91香蕉嫩草神马影院在线观看| 国产成人综合一区二区三区| 高清欧美性猛交xxxx黑人猛交|