亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Javascript 中的 call 和 apply使用介紹

 更新時(shí)間:2012年02月22日 15:40:38   作者:  
JavaScript 中通過call或者apply用來代替另一個(gè)對(duì)象調(diào)用一個(gè)方法,將一個(gè)函數(shù)的對(duì)象上下文從初始的上下文改變?yōu)橛?thisObj 指定的新對(duì)象
簡(jiǎn)單的說就是改變函數(shù)執(zhí)行的上下文,這是最基本的用法。兩個(gè)方法基本區(qū)別在于傳參不同。
call(obj,arg1,arg2,arg3);call第一個(gè)參數(shù)傳對(duì)象,可以是null。參數(shù)以逗號(hào)分開進(jìn)行傳值,參數(shù)可以是任何類型。
apply(obj,[arg1,arg2,arg3]);apply第一個(gè)參數(shù)傳對(duì)象,參數(shù)可以是數(shù)組或者arguments 對(duì)象。
這兩個(gè)方法通常被用來類的繼承和回調(diào)函數(shù):
作用一、類的繼承:
先來看這個(gè)例子:
復(fù)制代碼 代碼如下:

function Person(name,age){
this.name = name;
this.age=age;
this.alertName = function(){
alert(this.name);
}
this.alertAge = function(){
alert(this.age);
}
}
function webDever(name,age,sex){
Person.call(this,name,age);
this.sex=sex;
this.alertSex = function(){
alert(this.sex);
}
}
var test= new webDever("愚人碼頭",28,"男");
test.alertName();//愚人碼頭
test.alertAge();//28
test.alertSex();//男

這樣 webDever類就繼承Person類,Person.call(this,name,age) 的 意思就是使用 Person構(gòu)造函數(shù)(也是函數(shù))在this對(duì)象下執(zhí)行,那么 webDever就有了Person的所有屬性和方法,test對(duì)象就能夠直接調(diào)用Person的方法以及屬性了; 09年的理解解非常粗淺,呵呵。
作用二、回調(diào)函數(shù):
call 和 apply在回調(diào)行數(shù)中也非常有用,很多時(shí)候我們?cè)陂_發(fā)過程中需要對(duì)改變回調(diào)函數(shù)的執(zhí)行上下文,最常用的比如ajax或者定時(shí)什么的,一般情況下,Ajax都是全局的,也就是window對(duì)象下的,來看這個(gè)例子:
復(fù)制代碼 代碼如下:

function Album(id, title, owner_id) {
this.id = id;
this.name = title;
this.owner_id = owner_id;
};
Album.prototype.get_owner = function (callback) {
var self = this;
$.get('/owners/' + this.owner_id, function (data) {
callback && callback.call(self, data.name);
});
};
var album = new Album(1, '生活', 2);
album.get_owner(function (owner) {
alert('The album' + this.name + ' belongs to ' + owner);
});

這里
復(fù)制代碼 代碼如下:

album.get_owner(function (owner) {
alert('The album' + this.name + ' belongs to ' + owner);
});

中的 this.name就能直接取到album對(duì)象中的name屬性了。

相關(guān)文章

  • js實(shí)現(xiàn)繼承的5種方式

    js實(shí)現(xiàn)繼承的5種方式

    這篇文章主要介紹了js實(shí)現(xiàn)繼承的5種方式,具體分析了JavaScript對(duì)象冒充、call()方法方式、apply()方法方式、原型鏈方式及混合方式的具體使用技巧,需要的朋友可以參考下
    2015-12-12
  • Markdown+Bootstrap圖片自適應(yīng)屬性詳解

    Markdown+Bootstrap圖片自適應(yīng)屬性詳解

    這篇文章主要為大家詳細(xì)介紹了Markdown+Bootstrap圖片自適應(yīng)屬性,感興趣的朋友可以參考一下
    2016-05-05
  • JavaScript實(shí)現(xiàn)Fly Bird小游戲

    JavaScript實(shí)現(xiàn)Fly Bird小游戲

    這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)Fly Bird小游戲的制作方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • 分享JavaScript?類型判斷的幾種方法

    分享JavaScript?類型判斷的幾種方法

    這篇文章主要介紹了分享JavaScript?類型判斷的幾種方法,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的的參考價(jià)值,需要的小伙伴可以參考一下
    2022-05-05
  • JS使用正則表達(dá)式過濾多個(gè)詞語并替換為相同長(zhǎng)度星號(hào)的方法

    JS使用正則表達(dá)式過濾多個(gè)詞語并替換為相同長(zhǎng)度星號(hào)的方法

    這篇文章主要介紹了JS使用正則表達(dá)式過濾多個(gè)詞語并替換為相同長(zhǎng)度星號(hào)的方法,涉及javascript字符串與正則替換操作相關(guān)技巧,需要的朋友可以參考下
    2016-08-08
  • javascript定時(shí)器取消定時(shí)器及優(yōu)化方法

    javascript定時(shí)器取消定時(shí)器及優(yōu)化方法

    這篇文章主要介紹了 javascript定時(shí)器取消定時(shí)器及js定時(shí)器優(yōu)化方法的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • 原生JS運(yùn)動(dòng)實(shí)現(xiàn)輪播圖

    原生JS運(yùn)動(dòng)實(shí)現(xiàn)輪播圖

    這篇文章主要為大家詳細(xì)介紹了原生JS運(yùn)動(dòng)實(shí)現(xiàn)輪播圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • JS短路原理的應(yīng)用示例 精簡(jiǎn)代碼的途徑

    JS短路原理的應(yīng)用示例 精簡(jiǎn)代碼的途徑

    正如標(biāo)題所言,js中||和&&的特性幫我們精簡(jiǎn)了代碼的同時(shí),也帶來了代碼可讀性的降低。這就需要我們自己來權(quán)衡了,下面有個(gè)不錯(cuò)的示例
    2013-12-12
  • JavaScript中極易出錯(cuò)的操作符運(yùn)算總結(jié)

    JavaScript中極易出錯(cuò)的操作符運(yùn)算總結(jié)

    這篇文章主要給大家介紹了關(guān)于JavaScript中極易出錯(cuò)的操作符運(yùn)算的相關(guān)資料,包括了算術(shù)運(yùn)算符、比較運(yùn)算符、邏輯運(yùn)算符、賦值運(yùn)算符、一元運(yùn)算符以及運(yùn)算優(yōu)先級(jí)等問題,需要的朋友可以參考下
    2021-08-08
  • JavaScript函數(shù)返回值的具體使用

    JavaScript函數(shù)返回值的具體使用

    本文主要介紹了JavaScript函數(shù)返回值,包括基本返回值、多返回值、異步函數(shù)的返回值等,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-01-01

最新評(píng)論