摘要:簡單的指向全局函數(shù)中的指向在一個(gè)函數(shù)上下文中,由調(diào)用者提供,由調(diào)用函數(shù)的方式來決定。如果函數(shù)獨(dú)立調(diào)用,那么該函數(shù)內(nèi)部的,則指向。但是在非嚴(yán)格模式中,當(dāng)指向時(shí),它會(huì)被自動(dòng)指向全局對象。
原文全文傳送門
我寫這篇文章主要學(xué)習(xí)我不知道的獨(dú)立調(diào)用時(shí)this的指向
this的指向,是在函數(shù)被調(diào)用的時(shí)候確定的,也就是執(zhí)行上下文被創(chuàng)建時(shí)確定的。
(1)簡單的指向全局
(2)函數(shù)中的this指向
在一個(gè)函數(shù)上下文中,this由調(diào)用者提供,由調(diào)用函數(shù)的方式來決定。如果函數(shù)獨(dú)立調(diào)用,那么該函數(shù)內(nèi)部的this,則指向undefined。但是在非嚴(yán)格模式中,當(dāng)this指向undefined時(shí),它會(huì)被自動(dòng)指向全局對象。
var a = 20; var obj = { a: 10, c: this.a + 20, fn: function () { return this.a; } } console.log(obj.c); //獨(dú)立調(diào)用 非嚴(yán)格模式指向全局 40 console.log(obj.fn()); //對象調(diào)用 指向?qū)ο?10
當(dāng)obj在全局聲明時(shí),無論obj.c在什么地方調(diào)用,這里的this都指向全局對象,而當(dāng)obj在函數(shù)環(huán)境中聲明時(shí),這個(gè)this指向undefined,在非嚴(yán)格模式下,會(huì)自動(dòng)轉(zhuǎn)向全局對象。
var a = 20; var foo = { a: 10, getA: function () { return this.a; } } console.log(foo.getA()); //非獨(dú)立調(diào)用 10 var test = foo.getA; console.log(test()); //獨(dú)立調(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://specialneedsforspecialkids.com/yun/88132.html
寫在最前:BFC看起來是個(gè)很陌生的概念但它卻時(shí)時(shí)發(fā)生在我們工作中,如何清除浮動(dòng)影響?如何避免margin穿透問題?如何編寫兩欄自適應(yīng)布局?都和BFC有這密不可分的關(guān)系,下面走進(jìn)切圖妞的世界,分分鐘搞定BFC! 一、什么是BFC? BFC概念 塊格式化上下文(Block Formatting Context,BFC) 是Web頁面的可視化CSS渲染的一部分,是塊盒子的布局過程發(fā)生的區(qū)域,也是浮動(dòng)元素...
寫在最前:BFC看起來是個(gè)很陌生的概念但它卻時(shí)時(shí)發(fā)生在我們工作中,如何清除浮動(dòng)影響?如何避免margin穿透問題?如何編寫兩欄自適應(yīng)布局?都和BFC有這密不可分的關(guān)系,下面走進(jìn)切圖妞的世界,分分鐘搞定BFC! 一、什么是BFC? BFC概念 塊格式化上下文(Block Formatting Context,BFC) 是Web頁面的可視化CSS渲染的一部分,是塊盒子的布局過程發(fā)生的區(qū)域,也是浮動(dòng)元素...
閱讀 3205·2021-11-08 13:21
閱讀 1195·2021-08-12 13:28
閱讀 1406·2019-08-30 14:23
閱讀 1924·2019-08-30 11:09
閱讀 840·2019-08-29 13:22
閱讀 2684·2019-08-29 13:12
閱讀 2549·2019-08-26 17:04
閱讀 2250·2019-08-26 13:22