• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

    對JavaScript中this指針的新理解分享_javascript技巧

    來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 21:33:52
    文檔

    對JavaScript中this指針的新理解分享_javascript技巧

    對JavaScript中this指針的新理解分享_javascript技巧:一直以來對this的理解只在可以用,會用,卻沒有去深究其本質(zhì)。這次,借著《JavaScript The Good Parts》,作了一次深刻的理解。(所有調(diào)試都可以在控制臺中看到,瀏覽器F12鍵) 下面我們一起來看看這個this吧。 在我們聲明一個函數(shù)時,每個函數(shù)除了有定義時的p
    推薦度:
    導(dǎo)讀對JavaScript中this指針的新理解分享_javascript技巧:一直以來對this的理解只在可以用,會用,卻沒有去深究其本質(zhì)。這次,借著《JavaScript The Good Parts》,作了一次深刻的理解。(所有調(diào)試都可以在控制臺中看到,瀏覽器F12鍵) 下面我們一起來看看這個this吧。 在我們聲明一個函數(shù)時,每個函數(shù)除了有定義時的p

    一直以來對this的理解只在可以用,會用,卻沒有去深究其本質(zhì)。這次,借著《JavaScript The Good Parts》,作了一次深刻的理解。(所有調(diào)試都可以在控制臺中看到,瀏覽器F12鍵)

    下面我們一起來看看這個this吧。

    在我們聲明一個函數(shù)時,每個函數(shù)除了有定義時的parameters(形參),自身還會有額外的兩個參數(shù),一個是this,一個是arguments(實(shí)參)。arguments就是函數(shù)實(shí)際接受到的參數(shù),是一個類數(shù)組。arguments我只做個簡略的介紹,重點(diǎn)我們放在this指針上。

    在面向?qū)ο笞兂芍校瑃his十分重要,它的值取決于調(diào)用的模式。而在JavaScript中,一共有4中調(diào)用模式:方法調(diào)用模式、函數(shù)調(diào)用模式、構(gòu)造函數(shù)調(diào)用模式、apply調(diào)用模式。

    方法調(diào)用模式

    當(dāng)一個函數(shù)是作為一個對象的屬性時,我們通常稱這個函數(shù)是這個對象的一個方法。當(dāng)這個方法被調(diào)用時,this就會指向該方法所屬對象。

    代碼如下:

    代碼如下:
    var people = {
    name : "people-Yika",
    student : function(){
    var self = this; //將this緩存起來
    function sayName(){
    var name = "sayName-Yika";
    console.log(self.name); //"people-Yika",此時的self指向的是people對象
    };
    sayName();
    }
    }

    構(gòu)造函數(shù)調(diào)用模式

      JavaScript里一講到構(gòu)造函數(shù),腦海里就會有:“函數(shù)名大寫!調(diào)用的時候要用new操作符!” 函數(shù)名大寫好理解,是為了規(guī)范統(tǒng)一構(gòu)造函數(shù)的命名。可是你有沒有深究過為什么要用new呢?如果在一個函數(shù)前面帶上new來調(diào)用,那么函數(shù)后臺會創(chuàng)建一個指向該函數(shù)prototype的新對象,同時this也綁定在新對象上。JavaScript是一門基于原型繼承的語言,對原型prototype不是很清楚的同學(xué)可以自己去查一下資料,我重點(diǎn)放在this上面。

    我們先來看看構(gòu)造函數(shù)一般長什么樣子。

    代碼如下:
    輸出
      }
    }
      var Yika = new People("Yika");
    Yika.sayName(); //輸出“Yika" ,因為Yika是通過new調(diào)用得來的,this都綁定在了Yika對象上。

    乍一看,好像不是好懂,怎么剛才在函數(shù)里的this是指向window,現(xiàn)在不用緩存就可以指向People函數(shù)呢?

    沒關(guān)系,剛才不是說函數(shù)通過new調(diào)用,會在背地里自己做“做壞事”么,我們一起看看到底做了哪些事。

    代碼如下:
    輸出"Yika"

    這樣看就明白清楚了吧,new不僅會生成一個對象,而且還會自動return這個對象,這樣自然this便指向了這個新對象。

    千萬記得要用 new 去調(diào)用構(gòu)造函數(shù),不然出了問題,是沒有警告的,所有大寫約定還是十分有必要的。

    Apply調(diào)用模式

    apply方法讓我們構(gòu)建一個參數(shù)數(shù)組傳遞給調(diào)用函數(shù),也允許我們改變this值。

    function.apply(this綁定的值, arguments參數(shù)數(shù)組)

    apply可以說的東西太多了,我這里只舉個的栗子來幫助大家理解:
    代碼如下:
    輸出“Yika”

    我們可以通過apply輕易的修改函數(shù)的this綁定對象,和apply相似的方法call也有一樣的效果,有興趣的同學(xué)可以自己搜索學(xué)習(xí)一下。

    好了,總算講完改變this的四種調(diào)用模式了,方法調(diào)用模式和構(gòu)造函數(shù)調(diào)用模式會用的更多,也會更重要一點(diǎn),而函數(shù)調(diào)用模式,我們則要學(xué)會避開其中的陷阱。

    若有錯誤,請及時反映,我會盡快糾正,以防誤導(dǎo)他人,謝謝!

    聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    對JavaScript中this指針的新理解分享_javascript技巧

    對JavaScript中this指針的新理解分享_javascript技巧:一直以來對this的理解只在可以用,會用,卻沒有去深究其本質(zhì)。這次,借著《JavaScript The Good Parts》,作了一次深刻的理解。(所有調(diào)試都可以在控制臺中看到,瀏覽器F12鍵) 下面我們一起來看看這個this吧。 在我們聲明一個函數(shù)時,每個函數(shù)除了有定義時的p
    推薦度:
    • 熱門焦點(diǎn)

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 99久久人妻无码精品系列蜜桃| 成人区人妻精品一区二区不卡视频| 日韩精品无码中文字幕一区二区 | 亚洲精品高清无码视频| 四虎成人欧美精品在永久在线| 亚洲精品国产精品乱码不99| 久热精品视频第一页| 国产精品青青在线观看爽香蕉| 国内精品久久人妻互换| 亚洲精品97久久中文字幕无码| 国产手机在线精品| 色综合久久精品中文字幕首页| 国产高清在线精品二区一| 精品国产一区二区三区不卡| 亚洲国产精品无码久久久秋霞2 | 国产精品无码久久久久| 四虎精品免费永久在线| 1000部精品久久久久久久久| 精品一区二区三区免费毛片爱 | 麻豆精品视频在线观看| 国产成人亚洲精品影院| 51久久夜色精品国产| 精品视频在线免费观看| 国产99re在线观看只有精品| 国产成人精品日本亚洲网站| 国语自产少妇精品视频蜜桃| 亚洲AV无码成人网站久久精品大| 自拍偷自拍亚洲精品被多人伦好爽| 久久久久99精品成人片牛牛影视| 国产午夜精品一区二区三区小说| 国产精品天干天干在线综合| 国产精品综合专区中文字幕免费播放| 91精品国产品国语在线不卡| 四虎影视国产精品亚洲精品hd| 国产一区二区三区久久精品| 精品在线免费观看| 四虎成人精品免费影院| 国产精品V亚洲精品V日韩精品| 国产精品无打码在线播放| 免费视频成人国产精品网站| 日韩精品无码久久一区二区三|