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

溫馨提示×

溫馨提示×

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

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

怎么改變JS中的this指向

發布時間:2021-08-18 11:46:08 來源:億速云 閱讀:111 作者:chen 欄目:開發技術

本篇內容介紹了“怎么改變JS中的this指向”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

  JS的this指向

  正常函數的this指向

  1.全局調用 函數名( ) 指向 window

  2.對象調用 對象.函數名( ) 誰調用指向誰 (.前面是誰就指向誰)

  3.自執行的函數 指向window

  4.事件處理函數 指向事件源

  5.定時器處理函數 指向事件源

  6.函數定義了未調用的時候指向不確定

  強行改變this指向的方法

  call( )

  語法:

  函數名.call(你要改變的函數的 this 指向, 第二個參數開始,依次是給函數傳遞的參數)

  會直接把函數給調用

  第一個參數如果不寫或者寫一個 null,表示 window

  語法: 函數名.call(你要改變的函數的 this 指向, 第二個參數開始,依次是給函數傳遞的參數) 會直接把函數給調用 第一個參數如果不寫或者寫一個 null,表示 window

  let a = 10; function fn(b) { console.log(this); console.log(b); } fn.call(a,"gg"); //Number {10} 直接調用

  apply()

  語法: 函數名.apply(你要改變的函數的 this 指向,第二個參數是一個數組(只能有倆個參數) 數組里面每一項依次是給函數傳遞參數) 會直接把函數給調用

  let a = 10;

  function fn(b,c) {

  console.log(this);

  console.log(b);

  console.log(c);

  }

  fn.apply(a,["bb","cc"]); //Number {10} 直接調用

  call ( ) 和 apply ( ) 的方法實際上功能是一樣的,只是傳入的參數列表形式不同。

  bind()

  語法:

  函數名.bind(你要改變的函數的 this 指向)

  不會立即執行函數

  返回值: 就是一個函數(只不過是一個被改變好了 this 指向的函數)

  他對函數的參數傳遞有兩個方式

  1. 調用返回的函數的時候傳遞

  2. 直接從第二個參數開始依次傳遞

  let a = 10;

  function fn(b,c) {

  console.log(this);

  console.log(b);

  console.log(c);

  }

  var fn1=fn.bind(a,"bb","cc"); //返回的是改好指向的函數 并沒有調用

  fn(); // window 原來函數的指向是不會改變的

  fn1(); //Number {10}

“怎么改變JS中的this指向”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

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

js
AI

宁晋县| 长治市| 康马县| 福海县| 潜山县| 清河县| 寻甸| 名山县| 缙云县| 东台市| 松桃| 兴国县| 河曲县| 怀集县| 晋中市| 高青县| 南部县| 玉屏| 灵璧县| 丽江市| 遵化市| 东阳市| 潮安县| 密山市| 新野县| 夹江县| 宁乡县| 宁远县| 会泽县| 电白县| 安仁县| 鄂托克旗| 佛教| 哈密市| 扶风县| 衡山县| 锡林郭勒盟| 嘉义市| 兴山县| 闸北区| 宜昌市|