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

JavaScript中的方法調(diào)用詳細(xì)介紹

 更新時(shí)間:2014年12月30日 08:50:08   投稿:junjie  
這篇文章主要介紹了JavaScript中的方法調(diào)用詳細(xì)介紹,JavaScript中,如果function屬于一個(gè)對(duì)象,那么通過(guò)對(duì)象來(lái)訪問(wèn)該function的行為稱之為“方法調(diào)用”,需要的朋友可以參考下

JavaScript中,如果function屬于一個(gè)對(duì)象,那么通過(guò)對(duì)象來(lái)訪問(wèn)該function的行為稱之為“方法調(diào)用”。與普通的函數(shù)調(diào)用不同的是,在進(jìn)行方法調(diào)用時(shí),function中的this指代將發(fā)生變化 — this將指代用于調(diào)用該function的對(duì)象(該對(duì)象將成為方法調(diào)用的invocation context):


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

var x = 99;
var sample = {
  x:1,
  act:function(a){
    this.x = a*a;//assign value to sample's x, not global object's x.
  }
}
sample.act(6);
console.log(sample.x);//36
console.log(x);//99


與訪問(wèn)對(duì)象中的property一樣,除了使用點(diǎn)號(hào)操作符,JavaScript中還可以通過(guò)使用中括號(hào)操作符來(lái)進(jìn)行方法調(diào)用:


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

//other ways to invoke method
sample["act"](7);
console.log(sample.x);//49


對(duì)于JavaScript中的function,一個(gè)比較有趣的行為是可以在function中嵌入function(閉包)。在進(jìn)行方法調(diào)用時(shí),如果方法function中有嵌入的function,那么這個(gè)嵌入的function中的代碼可以訪問(wèn)到外部的變量值:


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

//nested function can access variable outside of it.
var y = 88;
var sample2 = {
  y:1,
  act2:function(a){
    this.y = inner();
    function inner(){
      return a*a;
    }
  }
}
sample2.act2(8);
console.log(sample2.y);//64
console.log(y);//88


不過(guò),與直覺(jué)相反的是,嵌入function中的代碼無(wú)法從外部繼承this;也就是說(shuō),在嵌入的function中,this指代的并不是調(diào)用方法的對(duì)象,而是全局對(duì)象:


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

//nested function does not inherit "this". The "this" in nested function is global object
var sample3 = {
  act3:function(){
    inner();
    function inner(){
      console.log(this);//window object
    }
  }
}
sample3.act3();


如果確實(shí)需要在嵌入function中訪問(wèn)到調(diào)用方法的對(duì)象,可以在外部function中將this值保存到一個(gè)變量中:


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

//pass "this" to nested function
var sample4 = {
  act4:function(){
    var self = this;
    inner();
    function inner(){
        console.log(self);//Object {act4=function()}
    }
  }
}
sample4.act4();

相關(guān)文章

最新評(píng)論

金坛市| 墨脱县| 牡丹江市| 洪洞县| 衡东县| 鹤峰县| 宜川县| 横峰县| 阳城县| 渝中区| 新平| 瑞昌市| 凌海市| 平昌县| 富阳市| 来凤县| 天全县| SHOW| 文登市| 孟津县| 乌苏市| 韶山市| 平果县| 金山区| 安图县| 孝昌县| 永兴县| 丰顺县| 鹿邑县| 灌阳县| 皋兰县| 曲松县| 内江市| 光山县| 天祝| 图木舒克市| 娄烦县| 和林格尔县| 阜宁县| 鄂温| 阿拉尔市|