91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaScript this關鍵字

發布時間:2020-11-05 16:29:32 來源:億速云 閱讀:140 作者:Leah 欄目:開發技術

JavaScript this關鍵字?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

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

this指代的情況

this有以下4種情況:

1、對象.函數的形式調用:object.function();

2、普通函數的形式調用:function();

3、構造器調用;

4、Function.prototype.call或Function.prototype.apply調用;

1、對象.函數的形式調用

對象.函數方式調用時,指代該對象。

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

2、普通函數形式調用

普通函數的方式被調用時,this指向全局對象。

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

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

3、構造器調用

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

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

在這種情況下,this指代這個正在創建中的對象。

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

4、Function.prototype.call或Function.prototype.apply調用

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

關于JavaScript this關鍵字問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

高要市| 天镇县| 中江县| 辛集市| 曲沃县| 鄂托克前旗| 原阳县| 休宁县| 宁明县| 乌拉特前旗| 泾阳县| 济宁市| 哈尔滨市| 满洲里市| 湘乡市| 陕西省| 贵德县| 阿拉善右旗| 泌阳县| 城口县| 高州市| 阆中市| 清徐县| 铁岭市| 吉安县| 垫江县| 即墨市| 鸡西市| 凤城市| 巴林右旗| 乌审旗| 陵水| 全州县| 鄱阳县| 东乌珠穆沁旗| 长兴县| 巩留县| 慈利县| 如皋市| 敦煌市| 牡丹江市|