最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript中神奇的call()方法

 更新時(shí)間:2015年03月12日 10:28:41   投稿:junjie  
這篇文章主要介紹了JavaScript中神奇的call()方法,本文用淺顯的語(yǔ)言幫助你加深理解call()方法,需要的朋友可以參考下

先看看關(guān)于call()的官方解釋?zhuān)罢{(diào)用一個(gè)對(duì)象的一個(gè)方法,以另一個(gè)對(duì)象替換當(dāng)前對(duì)象?!保戳诉@樣的解釋?zhuān)蛟S讓你更摸不著頭腦了??蠢樱?br />

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

var x = "我是全局變量";    //定義全局變量x
function a(){         //定義函數(shù)類(lèi)結(jié)構(gòu)a  
    this.x = "我是在函數(shù)類(lèi)結(jié)構(gòu)a中聲明的哦";   
}
//定義普通函數(shù),彈出當(dāng)前指針?biāo)淖兞縳的值
function f(){      
    alert (this.x);
}
//返回值為“我是在函數(shù)類(lèi)結(jié)構(gòu)a中聲明的哦”
f.call(new a());

我的理解是,f.call(new a())就是把函數(shù)(其實(shí)也是對(duì)象)f復(fù)制到被調(diào)用對(duì)象“new a()”下面去解析,事實(shí)上和下面這段代碼的解析結(jié)果一樣:
復(fù)制代碼 代碼如下:

function a(){
  this.x = "我是在函數(shù)類(lèi)結(jié)構(gòu)a中聲明的哦";
  alert(this.x);   
}
a();

只不過(guò)此時(shí)變量X的作用域不同而已,咿…看起來(lái)好像有點(diǎn)繼承的味道哦,難道不是嗎?在上例中,f完全被構(gòu)造函數(shù)a的實(shí)力對(duì)象繼承了,如果說(shuō)這還不足以說(shuō)明a.call(b)是一種繼承模式,那么再看一個(gè)更具有繼承味道的用法吧。
復(fù)制代碼 代碼如下:

function f(){   
    this.a ="a";   
    this.b = function(){   
        alert("b");
    }
}
function e(){   
    f.call(this);    
}
var c = new e();
alert(c.a);  //彈出a
c.b();    //彈出b

在這個(gè)例子中,只要會(huì)使用瀏覽器的朋友,都能看得出來(lái)e完全繼承了f的屬性和方法,否則是無(wú)法解釋的,因?yàn)樵趀中并沒(méi)有定義屬性a和b,那么按常理推斷在e的實(shí)例對(duì)象c中,并不會(huì)出現(xiàn)這兩個(gè)屬性。

相關(guān)文章

最新評(píng)論

宿州市| 建宁县| 布尔津县| 永年县| 吉安市| 绥化市| 金溪县| 翁源县| 张家界市| 兴化市| 淳化县| 阿克苏市| 福安市| 苏尼特左旗| 洛宁县| 南宫市| 碌曲县| 稷山县| 明溪县| 永寿县| 樟树市| 曲周县| 北碚区| 龙州县| 宜都市| 南召县| 新龙县| 栾川县| 同德县| 通江县| 山东省| 绥滨县| 乐平市| 周宁县| 虞城县| 墨竹工卡县| 和顺县| 江孜县| 宜黄县| 开阳县| 申扎县|