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

JavaScript this關鍵字指向常用情況解析

 更新時間:2020年09月02日 11:24:50   作者:蔣先森  
這篇文章主要介紹了JavaScript this關鍵字指向常用情況解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

在之前寫代碼的經(jīng)歷中,常常試過寫著寫著this就莫名其妙的不知道指向到哪里去了。今天看了曾探的javascript設計模式,里面特別談到了this在不同情況下指代的對象,非常有意思。

this指代的情況

this有以下4種情況:

1、對象.函數(shù)的形式調(diào)用:object.function();

2、普通函數(shù)的形式調(diào)用:function();

3、構造器調(diào)用;

4、Function.prototype.call或Function.prototype.apply調(diào)用;

1、對象.函數(shù)的形式調(diào)用

對象.函數(shù)方式調(diào)用時,指代該對象。

var obj = {
  num:1,
  getNum:function(){
    alert(this.num);//輸出1
  }
}
obj.getNum();

2、普通函數(shù)形式調(diào)用

普通函數(shù)的方式被調(diào)用時,this指向全局對象。

window.num = 2;
var obj = {
  num:1,
  getNum:function(){
    alert(this.num);
  }
}
obj.getNum();//彈出1
var fun1 = obj.getNum;
fun1();  //彈出2

太神奇了,直接調(diào)用函數(shù) fun(); 與通過對象調(diào)用函數(shù) xxx.fun(); this指代的對象不同。

3、構造器調(diào)用

為了能夠用上new關鍵字,javascript的創(chuàng)建對象可以這樣定義。

var person = function(){
this.name = '劉備';
}

在這種情況下,this指代這個正在創(chuàng)建中的對象。

var p = new person();
alert(p.name);//彈出劉備

4、Function.prototype.call或Function.prototype.apply調(diào)用

var obj1 = {
  name:'關羽',
  getName:function(){
    return this.name;
  }
}
var obj2 = {
  name:'劉備'
}
alert(obj1.getName());  //關羽
alert(obj1.getName.call(obj2));  //劉備

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

最新評論

莆田市| 鄂伦春自治旗| 沂水县| 辽阳市| 兴化市| 吉林市| 石楼县| 天祝| 肃北| 镇远县| 阜康市| 比如县| 龙陵县| 江山市| 南涧| 福泉市| 随州市| 新乡市| 桦甸市| 眉山市| 涞源县| 香港 | 岳阳市| 磐安县| 巍山| 盐亭县| 新安县| 清苑县| 鄂州市| 密云县| 泰宁县| 武宣县| 彰化市| 万载县| 岐山县| 永清县| 东乡县| 炎陵县| 蓝山县| 绥江县| 安岳县|