成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

javscript中this初探

Xufc / 2777人閱讀

摘要:是什么是一個(gè)特別的關(guān)鍵字,是自動(dòng)定義在所有函數(shù)和全局的作用域中。是在運(yùn)行時(shí)綁定的,而不是聲明時(shí)綁定的。小結(jié)的指向取決于函數(shù)執(zhí)行時(shí)的塊級(jí)上下文

This

This是什么:
this是一個(gè)特別的關(guān)鍵字,是自動(dòng)定義在所有函數(shù)和全局的作用域中。this是在運(yùn)行時(shí)綁定的,而不是聲明時(shí)綁定的。

為什么要有this
假設(shè)不存在this關(guān)鍵字,那么對(duì)于一個(gè)函數(shù)根據(jù)不同上下文背景下的復(fù)用就用傳入?yún)?shù)

        var obj = Object.create(null);

        obj.name = "Nico";

        function speak(context) {
            console.log(context.name + " speaks a word");
        }

        speak(obj);

this指向的幾種情況:
1、一般情況下,this是指向當(dāng)前執(zhí)行時(shí)的對(duì)象

var person = {
    name: "nico",
    getName: function() {
        console.log(this.name)
    }
}

var name = "siip";

person.getName(); //nico

person對(duì)象調(diào)用getName方法,所以當(dāng)前this指向的是person對(duì)象

2、如果沒有明確對(duì)象時(shí),this指向全局對(duì)象(在非嚴(yán)格模式下,在嚴(yán)格模式下,函數(shù)綁定undefined,也就是this指向undefined)

var name = "siip";

function className() {
    console.log(this.name);
}

className();//siip

其實(shí)這里的className可相似于window.className,所以當(dāng)前this指向window
3、setTimeout、setInterval、匿名函數(shù)this指向全局對(duì)象

var person = {
    name: "nico",
    fns: function() {
        setTimeout(function() {
            console.log(this.name)
        }, 100);//siip

        setInterval(function() {
            console.log(this.name)
        }, 100);//siip

        (function() {
            console.log(this.name)
        })()//siip
    }
}
var name = "siip";
person.fns();

這些方法都比較容易理解this的指向,因?yàn)槟涿瘮?shù)或者定時(shí)器函數(shù)都是掛載window上的函數(shù),調(diào)用者是window對(duì)象,這些函數(shù)里聲明的函數(shù),也指向調(diào)用者,類似于:

        function foo() {
            function bar() {
                console.log(this)
            }
            bar();
        }

        foo();

4、apply、call能夠改變this指向(無參數(shù)時(shí)或者傳入null、undefined,指向window)

    var person = {
        name: "nico",
        applyFns: function() {
            console.log(this.name)
        }
    }
    var name = "siip";
    person.applyFns();//nico
    person.applyFns.apply();//siip

有時(shí)候,

5、new Function 構(gòu)造函數(shù)中的this指向該構(gòu)造函數(shù)new出來的對(duì)象。

因?yàn)閚ew Function的過程大概:

創(chuàng)建一個(gè)新的空對(duì)象

空對(duì)象_proto_指向Function.prototype

空對(duì)象與當(dāng)前函數(shù)調(diào)用的this綁定

返回新創(chuàng)建對(duì)象

所以new Function中的this指向return的對(duì)象。

小結(jié)

this的指向取決于函數(shù)執(zhí)行時(shí)的塊級(jí)上下文

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/107403.html

相關(guān)文章

  • javscript學(xué)習(xí)筆記

    摘要:一直對(duì)抱有敬畏的態(tài)度,也沒有一直深入學(xué)習(xí)。當(dāng)學(xué)到各種框架的時(shí)候才發(fā)現(xiàn)力不從心,感覺到了基礎(chǔ)的重要性,重新認(rèn)真的系統(tǒng)的學(xué)習(xí)一下。 一直對(duì)javscript抱有敬畏的態(tài)度,也沒有一直深入學(xué)習(xí)。當(dāng)學(xué)到各種js框架的時(shí)候才發(fā)現(xiàn)力不從心,感覺到了javascript基礎(chǔ)的重要性,重新認(rèn)真的系統(tǒng)的學(xué)習(xí)一下。showImg(http://static.xiaomo.info/images/javas...

    hedge_hog 評(píng)論0 收藏0
  • javscript插件匯總

    摘要:更新單元測(cè)試,已使用,,,使用測(cè)試覆蓋率,并集成配合來做持續(xù)化構(gòu)建,可以參考本項(xiàng)目的配置文件和的配置文件。判斷是否然后記得在文件中暴露函數(shù)單元測(cè)試在文件新建測(cè)試用例然后記得在中引入之前創(chuàng)建的測(cè)試用例腳本。 前言作為戰(zhàn)斗在業(yè)務(wù)一線的前端,要想少加班,就要想辦法提高工作效率。這里提一個(gè)小點(diǎn),我們?cè)跇I(yè)務(wù)開發(fā)過程中,經(jīng)常會(huì)重復(fù)用到日期格式化、url參數(shù)轉(zhuǎn)對(duì)象、瀏覽器類型判斷、節(jié)流函數(shù)等一類函數(shù)...

    K_B_Z 評(píng)論0 收藏0
  • Promise初探

    摘要:可以根據(jù)省份城市和區(qū)對(duì)組件設(shè)置默認(rèn)值。獲取省份獲取城市獲取區(qū)出現(xiàn)層嵌套的回調(diào),這就是傳說中的惡魔金字塔。相比回調(diào)嵌套,層次更分明,可讀性強(qiáng)?;驹韺W(xué)習(xí)無論是在異步操作的執(zhí)行之前或執(zhí)行之后,用對(duì)象的方法注冊(cè)回調(diào),回調(diào)都能一致執(zhí)行。 遭遇惡魔金字塔 項(xiàng)目需要,封裝了一個(gè)省市區(qū)的地址選擇器組件。 可以根據(jù)省份id、城市id和區(qū)id對(duì)組件設(shè)置默認(rèn)值。邏輯是這樣的: 獲取省份列表,選中默認(rèn)省...

    mj 評(píng)論0 收藏0
  • Vue初探-日期選擇器

    摘要:之前用用面向?qū)ο蟮姆椒▽?shí)現(xiàn)過日期選擇器,最近在練習(xí),現(xiàn)在用實(shí)現(xiàn)一遍。需求設(shè)定實(shí)現(xiàn)一個(gè)日期選擇器,默認(rèn)顯示,高亮顯示。能夠點(diǎn)擊上一月下一月進(jìn)行日期跳轉(zhuǎn)。實(shí)現(xiàn)日期選擇有兩個(gè)比較關(guān)鍵的方法獲取當(dāng)月天數(shù),以便循環(huán)遍歷多少天。 之前用jquery用面向?qū)ο蟮姆椒▽?shí)現(xiàn)過日期選擇器,最近在練習(xí)vue,現(xiàn)在用vue實(shí)現(xiàn)一遍。發(fā)現(xiàn)vue用數(shù)據(jù)驅(qū)動(dòng)的方式來實(shí)現(xiàn),感覺還不錯(cuò)。 需求設(shè)定 1.實(shí)現(xiàn)一個(gè)日期選擇...

    MAX_zuo 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<