摘要:簡單的指向全局函數(shù)中的指向在一個函數(shù)上下文中,由調(diào)用者提供,由調(diào)用函數(shù)的方式來決定。如果函數(shù)獨立調(diào)用,那么該函數(shù)內(nèi)部的,則指向。但是在非嚴格模式中,當指向時,它會被自動指向全局對象。
原文全文傳送門
我寫這篇文章主要學習我不知道的獨立調(diào)用時this的指向
this的指向,是在函數(shù)被調(diào)用的時候確定的,也就是執(zhí)行上下文被創(chuàng)建時確定的。
(1)簡單的指向全局
(2)函數(shù)中的this指向
在一個函數(shù)上下文中,this由調(diào)用者提供,由調(diào)用函數(shù)的方式來決定。如果函數(shù)獨立調(diào)用,那么該函數(shù)內(nèi)部的this,則指向undefined。但是在非嚴格模式中,當this指向undefined時,它會被自動指向全局對象。
var a = 20; var obj = { a: 10, c: this.a + 20, fn: function () { return this.a; } } console.log(obj.c); //獨立調(diào)用 非嚴格模式指向全局 40 console.log(obj.fn()); //對象調(diào)用 指向?qū)ο?10
當obj在全局聲明時,無論obj.c在什么地方調(diào)用,這里的this都指向全局對象,而當obj在函數(shù)環(huán)境中聲明時,這個this指向undefined,在非嚴格模式下,會自動轉(zhuǎn)向全局對象。
var a = 20; var foo = { a: 10, getA: function () { return this.a; } } console.log(foo.getA()); //非獨立調(diào)用 10 var test = foo.getA; console.log(test()); //獨立調(diào)用 20
(3)用call或者apply顯式更改this
(4)構(gòu)造函數(shù)new對象this
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/88132.html
寫在最前:BFC看起來是個很陌生的概念但它卻時時發(fā)生在我們工作中,如何清除浮動影響?如何避免margin穿透問題?如何編寫兩欄自適應布局?都和BFC有這密不可分的關系,下面走進切圖妞的世界,分分鐘搞定BFC! 一、什么是BFC? BFC概念 塊格式化上下文(Block Formatting Context,BFC) 是Web頁面的可視化CSS渲染的一部分,是塊盒子的布局過程發(fā)生的區(qū)域,也是浮動元素...
寫在最前:BFC看起來是個很陌生的概念但它卻時時發(fā)生在我們工作中,如何清除浮動影響?如何避免margin穿透問題?如何編寫兩欄自適應布局?都和BFC有這密不可分的關系,下面走進切圖妞的世界,分分鐘搞定BFC! 一、什么是BFC? BFC概念 塊格式化上下文(Block Formatting Context,BFC) 是Web頁面的可視化CSS渲染的一部分,是塊盒子的布局過程發(fā)生的區(qū)域,也是浮動元素...
閱讀 3295·2021-11-08 13:21
閱讀 1275·2021-08-12 13:28
閱讀 1497·2019-08-30 14:23
閱讀 1997·2019-08-30 11:09
閱讀 907·2019-08-29 13:22
閱讀 2752·2019-08-29 13:12
閱讀 2625·2019-08-26 17:04
閱讀 2391·2019-08-26 13:22