国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

JavaScript this對象

這篇具有很好參考價值的文章主要介紹了JavaScript this對象。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

this關(guān)鍵字時是函數(shù)運行時自動生成的一個內(nèi)部對象,只能在函數(shù)內(nèi)部使用,總指向調(diào)用它的對象

綁定規(guī)則

默認綁定

全局環(huán)境中定義函數(shù),內(nèi)部使用this關(guān)鍵字

var name = 'Jenny';
function person() {
 ?  return this.name;
}
console.log(person());  //Jenny

上述調(diào)用函數(shù)的對象在瀏覽器中為window,所以this指向window,輸出Jenny

隱式綁定

函數(shù)可以作為某個對象的方法來調(diào)用,此時this就指向這個上級對象

function test() {
  console.log(this.x);
}
?
var obj = {};
obj.x = 1;
obj.m = test;
?
obj.m(); // 1

一個函數(shù)中包含多個對象,盡管函數(shù)是被最外層的對象調(diào)用,this指向的也只是上一級的對象

var o = {
 ?  a:10,
 ?  b:{
 ? ? ?  fn:function(){
 ? ? ? ? ?  console.log(this.a); //undefined
 ? ? ?  }
 ?  }
}
o.b.fn();

上述代碼中this指向的仍舊是b,b作用域內(nèi)沒有a的定義,所以打印undefined

記住,this指向的是最后調(diào)用它的對象

new綁定

通過構(gòu)造函數(shù)new關(guān)鍵字生成一個實例對象,this指向該實例對象

function test() {
 this.x = 1;
}
?
var obj = new test();
obj.x // 1

不過也有特殊情況

當(dāng)構(gòu)造函數(shù)返回一個簡單類型,this仍指向?qū)嵗龑ο?/p>

但當(dāng)構(gòu)造函數(shù)返回一個對象時,this指向會改變成返回的對象,如下:

function fn() ?
{ ?
 ?  this.user = 'xxx'; ?
 ?  return {}; ?
}
var a = new fn(); ?
console.log(a.user); //undefined

手寫一個new關(guān)鍵字

function mynew(Func, ...args) {
 ?  // 1.創(chuàng)建一個新對象
 ?  const obj = {}
 ?  // 2.新對象原型指向構(gòu)造函數(shù)原型對象
 ?  obj.__proto__ = Func.prototype
 ?  // 3.將構(gòu)建函數(shù)的this指向新對象
 ?  let result = Func.apply(obj, args)
 ?  // 4.根據(jù)返回值判斷
 ?  return result instanceof Object ? result : obj
}

顯示修改

apply()、call()、bind()是函數(shù)的方法,作用時改變函數(shù)的調(diào)用對象,之前已經(jīng)講過,apply,call都是臨時一次改變,而bind則是返回一個新的函數(shù),指向為傳進來的參數(shù)。

具體見下方文章鏈接:

箭頭函數(shù)

箭頭函數(shù)在定義時就已經(jīng)確定了this的指向,且不能通過顯示修改的方式改變其this指向

const button = document.getElementById('mngb');
button.addEventListener('click', ()=> {
 ?  console.log(this === window) // true
 ?  this.innerHTML = 'clicked button'
})

如上,該箭頭函數(shù)被定義時處于全局作用域中,所以this指向window

最后說一下綁定優(yōu)先級,

new綁定優(yōu)先級 > 顯示綁定優(yōu)先級 > 隱式綁定優(yōu)先級 > 默認綁定優(yōu)先級文章來源地址http://www.zghlxwxcb.cn/news/detail-838646.html

到了這里,關(guān)于JavaScript this對象的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【前端|Javascript第5篇】全網(wǎng)最詳細的JS的內(nèi)置對象文章!

    【前端|Javascript第5篇】全網(wǎng)最詳細的JS的內(nèi)置對象文章!

    前言 在當(dāng)今數(shù)字時代,前端技術(shù)正日益成為塑造用戶體驗的關(guān)鍵。我們在開發(fā)中需要用到很多js的內(nèi)置對象的一些屬性來幫助我們更快速的進行開發(fā)?;蛟S你是剛踏入前端領(lǐng)域的小白,或者是希望深入了解內(nèi)置對象的開發(fā)者,不論你的經(jīng)驗如何,本篇博客都將給你詳細的講解

    2024年02月12日
    瀏覽(57)
  • 【JavaScript】3.4 JavaScript在現(xiàn)代前端開發(fā)中的應(yīng)用

    【JavaScript】3.4 JavaScript在現(xiàn)代前端開發(fā)中的應(yīng)用

    JavaScript 是現(xiàn)代前端開發(fā)的核心。無論是交互效果,還是復(fù)雜的前端應(yīng)用,JavaScript 都發(fā)揮著關(guān)鍵作用。在本章節(jié)中,我們將探討 JavaScript 在現(xiàn)代前端開發(fā)中的應(yīng)用,包括如何使用 JavaScript 來處理用戶交互、動態(tài)內(nèi)容、前端路由、API 請求等。 JavaScript 是處理用戶交互的主要工

    2024年02月04日
    瀏覽(26)
  • 掌握 JavaScript:從初學(xué)者到高級開發(fā)者的完整指南之JavaScript對象(二)

    掌握 JavaScript:從初學(xué)者到高級開發(fā)者的完整指南之JavaScript對象(二)

    可以大體分頁3大類: 第一類:基本對象,我們主要學(xué)習(xí)Array和JSON和String 第二類:BOM對象,主要是和瀏覽器相關(guān)的幾個對象 第三類:DOM對象,JavaScript中將html的每一個標(biāo)簽都封裝成一個對象 1.1.1 基本對象 1.1.1.1 Array對象 語法格式 Array對象時用來定義數(shù)組的。常用語法格式有如下

    2024年02月07日
    瀏覽(25)
  • 前端開發(fā)——Javascript知識(介紹)

    目錄 有關(guān)JavaScript的知識? JavaScript的優(yōu)點? ?JavaScript的領(lǐng)域 JavaScript的組成 JavaScript的特點 第一個JavaScript程序 在 HTML 文檔中嵌入 JavaScript 代碼 在腳本文件中編寫 JavaScript 代碼 JavaScript內(nèi)容? Html內(nèi)容? JavaScript 代碼執(zhí)行順序 JavaScript中的幾個重要概念 標(biāo)識符 保留字 區(qū)分

    2024年02月01日
    瀏覽(25)
  • 前端開發(fā)——JavaScript的條件語句

    ? 世界不僅有黑,又或者白 世界而是一道精致的灰 ?——Lungcen ? ? 目錄 條件判斷語句 if 語句 if else 語句 if else if else 語句 ?switch語句 break case 子句 default語句 while循環(huán)語句 do while循環(huán)語句 for循環(huán)語句 for 循環(huán)中的三個表達式 for 循環(huán)嵌套 for 循環(huán)變體——for in for 循環(huán)

    2023年04月21日
    瀏覽(24)
  • 快速認識,前端必學(xué)編程語言:JavaScript

    快速認識,前端必學(xué)編程語言:JavaScript

    JavaScript是構(gòu)建Web應(yīng)用必學(xué)的一門編程語言,也是最受開發(fā)者歡迎的熱門語言之一。所以,如果您還不知道JavaScript的用處、特點的話,趕緊補充一下這塊基礎(chǔ)知識。 JavaScript 是一種高級、單線程、垃圾收集、解釋或即時編譯、基于原型、多范式、動態(tài)語言,具有非阻塞事件循

    2024年02月05日
    瀏覽(27)
  • 【前端靈魂腳本語言JavaScript⑤】——JS中數(shù)組的使用

    【前端靈魂腳本語言JavaScript⑤】——JS中數(shù)組的使用

    ?? 作者: 阿偉 ?? 個人主頁: Flyme awei ?? 希望大家多多支持??一起進步呀! ?? 文章對你有幫助??關(guān)注?點贊??收藏?? 第一種: var 數(shù)組名 = new Array(); 創(chuàng)建一個空數(shù)組 第二種: var arr2 = new Array(10); 創(chuàng)建一個定長為10的數(shù)組 第三種 var arr3 = new Array(a,b,c); 創(chuàng)建時直接指定元素值

    2023年04月08日
    瀏覽(112)
  • 30個前端開發(fā)中常用的JavaScript函數(shù)

    30個前端開發(fā)中常用的JavaScript函數(shù)

    ?????作者名稱:DaenCode ??作者簡介:啥技術(shù)都喜歡搗鼓搗鼓,喜歡分享技術(shù)、經(jīng)驗、生活。 ??人生感悟:嘗盡人生百味,方知世間冷暖。 在前端開發(fā)中通常會用到校驗函數(shù),檢驗是否為空、手機號格式、身份證格式等等?,F(xiàn)按照用途分類整理出了30個常用的方法,在V

    2024年02月14日
    瀏覽(28)
  • [前端開發(fā)] 常見的 HTML CSS JavaScript 事件

    代碼示例指路 常見的 HTML、CSS、JavaScript 事件代碼示例 在 Web 開發(fā)中,事件是用戶與網(wǎng)頁交互的重要方式之一。通過事件,用戶可以與頁面元素進行交互,觸發(fā)相應(yīng)的功能或效果。本文將介紹常見的 HTML、CSS、JavaScript 事件,以及事件對象和事件代理的概念。 鼠標(biāo)事件 鼠標(biāo)事

    2024年02月19日
    瀏覽(30)
  • 2023年web前端開發(fā)之JavaScript進階(一)

    2023年web前端開發(fā)之JavaScript進階(一)

    接上篇博客進行學(xué)習(xí),通俗易懂,詳細 博客地址: 2023年web前端開發(fā)之JavaScript基礎(chǔ)(五)基礎(chǔ)完結(jié)_努力的小周同學(xué)的博客-CSDN博客 學(xué)習(xí) 作用域 、變量提升、 閉包 等語言特征,加深對 JavaScript 的理解,掌握變量賦值、函數(shù)聲明的簡潔語法, 降低代碼的冗余度 。 理解作用域?qū)Τ绦?/p>

    2024年02月03日
    瀏覽(37)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包