亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

如何在JavaScript中使用this方法

發布時間:2021-01-18 15:48:05 來源:億速云 閱讀:107 作者:Leah 欄目:web開發

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

JavaScript 中函數的調用有以下幾種方式:作為函數調用,作為對象方法調用,作為構造函數調用,和使用 apply 或 call 調用。下面我們將按照調用方式的不同,分別討論 this 的含義。

情況一:純粹的函數調用

這是函數的最通常用法,屬于全局性調用,因此this就代表全局對象Global。

1、函數也可以直接被調用,此時 this 綁定到全局對象。

function makeNoSense(x) { 
  this.x = x; 
} 
makeNoSense(5); 
console.log(x);// x 已經成為一個值為 5 的全局變量
function test(){
  this.x = 1;
  alert(this.x);
}
test(); // 1

情況二:作為對象方法的調用

函數還可以作為某個對象的方法調用,這時this指代對象內部屬性被調用。

var myObject = {
  value :0,
  increment:function (inc){
    this.value += typeof inc ==='number' ? inc:1;
  }
};
myObject.increment();
console.log(myObject.value); //1
myObject.increment(2);
console.log(myObject.value); //3

情況三 :作為構造函數調用

javaScript 支持面向對象式編程,與主流的面向對象式編程語言不同,JavaScript 并沒有類(class)的概念,而是使用基于原型(prototype)的繼承方式。

相應的,JavaScript 中的構造函數也很特殊,如果不使用 new 調用,則和普通函數一樣。作為又一項約定俗成的準則,構造函數以大寫字母開頭,提醒調用者使用正確的方式調用。如果調用正確,this 綁定到新創建的對象上。

所謂構造函數,就是通過這個函數生成一個新對象(object)。這時,this就指這個新對象。

function Point(x, y){ 
  this.x = x; 
  this.y = y; 
 }
var p1 = new Point(3,2);
console.log(p1.x+","+p1.y);//3,2

為了表明這時this不是全局對象,我對代碼做一些改變:

var x = 4;
function Point(x, y){ 
  this.x = x; 
  this.y = y; 
 }
var p1 = new Point(3,2);
console.log(p1.x+","+p1.y);//3,2

情況四: apply或call調用

讓我們再一次重申,在 JavaScript 中函數也是對象,對象則有方法,apply 和 call 就是函數對象的方法。這兩個方法異常強大,他們允許切換函數執行的上下文環境(context),即 this 綁定的對象。很多 JavaScript 中的技巧以及類庫都用到了該方法。讓我們看一個具體的例子:

function Point(x, y){ 
  this.x = x; 
  this.y = y; 
  this.moveTo = function(x, y){ 
    this.x = x; 
    this.y = y; 
    console.log(this.x+","+this.y);
  } 
} 
var p1 = new Point(0, 0); 
var p2 = {x: 0, y: 0}; 
p1.moveTo(1, 1); //1,1
p1.moveTo.apply(p2, [10, 10]);//10,10

在上面的例子中,我們使用構造函數生成了一個對象 p1,該對象同時具有 moveTo 方法;使用對象字面量創建了另一個對象 p2,我們看到使用 apply 可以將 p1 的方法應用到 p2 上,這時候 this 也被綁定到對象 p2 上。另一個方法 call 也具備同樣功能,不同的是最后的參數不是作為一個數組統一傳入,而是分開傳入的。本文通過對JavaScript中經常容易混淆的this在四中應用場景中的使用方法進行了講解,希望對您有所幫助,喜歡的話,請推薦一下哦。

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

向AI問一下細節

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

AI

高安市| 安徽省| 东安县| 阿拉善左旗| 辽阳市| 乡城县| 定襄县| 天津市| 抚顺县| 攀枝花市| 孟津县| 三都| 江油市| 吉林市| 疏勒县| 辽阳县| 米易县| 景泰县| 同心县| 漳浦县| 鲁甸县| 廊坊市| 义乌市| 宣威市| 任丘市| 凌海市| 辛集市| 静海县| 额尔古纳市| 夏津县| 华容县| 汝城县| 年辖:市辖区| 东乌| 罗定市| 如皋市| 买车| 韶关市| 辽宁省| 潞西市| 龙门县|