摘要:是什么是一個(gè)特別的關(guān)鍵字可以用在構(gòu)造函數(shù)之中,表示實(shí)例對(duì)象總是返回一個(gè)對(duì)象簡(jiǎn)單說(shuō),就是屬性或方法當(dāng)前所在的對(duì)象姓名姓名表示屬性所在的那個(gè)對(duì)象。
this 是什么
this是一個(gè)特別的關(guān)鍵字 this可以用在構(gòu)造函數(shù)之中,表示實(shí)例對(duì)象 this總是返回一個(gè)對(duì)象
簡(jiǎn)單說(shuō),this就是屬性或方法“當(dāng)前”所在的對(duì)象
var person = { name: "Rookie", method: function () { return "姓名:"+ this.name; } }; person.method() //"姓名:Rookie"
this.name表示name屬性所在的那個(gè)對(duì)象。由于this.name是在method方法中調(diào)用,而method方法所在的當(dāng)前對(duì)象是person,因此this指向person,this.name就是person.name。
因?yàn)閷?duì)象的屬性可以賦給另一個(gè)對(duì)象,所以屬性所在的當(dāng)前對(duì)象是可變的 ----> this的指向是可變的
var A = { name: "Rookie", method: function () { return "姓名:"+ this.name; } }; var B = { name: "BDD" }; B.method= A.method; B.method() // "姓名:BDD"使用場(chǎng)景 (1)全局環(huán)境
全局環(huán)境使用this,它指的就是頂層對(duì)象window
this === window // true function f() { console.log(this === window); } f() // true
不管是不是在函數(shù)內(nèi)部,只要是在全局環(huán)境下運(yùn)行,this就是指頂層對(duì)象window
(2)構(gòu)造函數(shù)構(gòu)造函數(shù)中的this,指的是實(shí)例對(duì)象。
var Obj = function (e) { this.e = e; }; var n=new Obj("HOLA"); console.log(n.e);
this指向?qū)嵗龑?duì)象,所以在構(gòu)造函數(shù)內(nèi)部定義this.e,就相當(dāng)于定義實(shí)例對(duì)象有一個(gè)e屬性。
(3)對(duì)象的方法如果對(duì)象的方法里面包含this,this的指向就是方法運(yùn)行時(shí)所在的對(duì)象。該方法賦值給另一個(gè)對(duì)象,就會(huì)改變this的指向。
var obj ={ foo: function () { console.log(this); } }; obj.foo() // obj
obj.foo方法執(zhí)行時(shí),它內(nèi)部的this指向obj
var a = { p: "Hello", b: { m: function() { console.log(this.p); } } }; a.b.m() // undefined
如果this所在的方法不在對(duì)象的第一層,這時(shí)this只是指向當(dāng)前一層的對(duì)象,而不會(huì)繼承更上面的層。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/108488.html
摘要:出于這個(gè)原因,該函數(shù)返回的,所以在這里指的是,所以返回的是第一個(gè)說(shuō)明關(guān)鍵字通常在對(duì)象的構(gòu)造函數(shù)中使用,用來(lái)引用對(duì)象。重寫無(wú)法重寫,因?yàn)樗且粋€(gè)關(guān)鍵字。結(jié)論,表示當(dāng)前的上下文對(duì)象是一個(gè)對(duì)象,可以調(diào)用對(duì)象所擁有的屬性,方法。 在《javaScript語(yǔ)言精粹》這本書中,把 this 出現(xiàn)的場(chǎng)景分為四類,簡(jiǎn)單的說(shuō)就是: 有對(duì)象就指向調(diào)用對(duì)象 沒(méi)調(diào)用對(duì)象就指向全局對(duì)象 用new構(gòu)造就指向新對(duì)...
摘要:關(guān)鍵字關(guān)鍵字是什么關(guān)鍵字是中最復(fù)雜的機(jī)制之一。它是一個(gè)很特別的關(guān)鍵字,被定義在所有函數(shù)的作用域中??梢园堰@條規(guī)則看作是無(wú)法應(yīng)用其他規(guī)則時(shí)的默認(rèn)規(guī)則。取決于函數(shù)調(diào)用的位置注意事項(xiàng)避免多層避免數(shù)組方法中的避免回調(diào)函數(shù)中的 this關(guān)鍵字 this關(guān)鍵字是什么 this關(guān)鍵字是JavaScript中最復(fù)雜的機(jī)制之一。它是一個(gè)很特別的關(guān)鍵字,被定義在所有函數(shù)的作用域中。但是即使是非常有經(jīng)驗(yàn)的J...
摘要:關(guān)鍵字關(guān)鍵字是什么關(guān)鍵字是中最復(fù)雜的機(jī)制之一。它是一個(gè)很特別的關(guān)鍵字,被定義在所有函數(shù)的作用域中??梢园堰@條規(guī)則看作是無(wú)法應(yīng)用其他規(guī)則時(shí)的默認(rèn)規(guī)則。取決于函數(shù)調(diào)用的位置注意事項(xiàng)避免多層避免數(shù)組方法中的避免回調(diào)函數(shù)中的 this關(guān)鍵字 this關(guān)鍵字是什么 this關(guān)鍵字是JavaScript中最復(fù)雜的機(jī)制之一。它是一個(gè)很特別的關(guān)鍵字,被定義在所有函數(shù)的作用域中。但是即使是非常有經(jīng)驗(yàn)的J...
摘要:原文鏈接參考深入理解原型和閉包完結(jié)王福朋博客園中的作用域詳解博客園 前言 王福朋老師的 JavaScript原型和閉包系列 文章看了不下三遍了,最為一個(gè)初學(xué)者,每次看的時(shí)候都會(huì)有一種 大徹大悟 的感覺(jué),而看完之后卻總是一臉懵逼。原型與閉包 可以說(shuō)是 JavaScirpt 中理解起來(lái)最難的部分了,當(dāng)然,我也只是了解到了一些皮毛,對(duì)于 JavaScript OOP 更是缺乏經(jīng)驗(yàn)。這里我想總...
摘要:首先,必須搞清楚在里面,函數(shù)的幾種調(diào)用方式普通函數(shù)調(diào)用作為方法來(lái)調(diào)用作為構(gòu)造函數(shù)來(lái)調(diào)用使用方法來(lái)調(diào)用方法箭頭函數(shù)但是不管函數(shù)是按哪種方法來(lái)調(diào)用的,請(qǐng)記住一點(diǎn)誰(shuí)調(diào)用這個(gè)函數(shù)或方法關(guān)鍵字就指向誰(shuí)。 本文主要解釋在JS里面this關(guān)鍵字的指向問(wèn)題(在瀏覽器環(huán)境下)。 首先,必須搞清楚在JS里面,函數(shù)的幾種調(diào)用方式: 普通函數(shù)調(diào)用 作為方法來(lái)調(diào)用 作為構(gòu)造函數(shù)來(lái)調(diào)用 使用apply/call...
在JavaScript中‘this’關(guān)鍵字是一個(gè)非常重要的概念,我們雖然知道它重要,但它也十分的晦澀難懂,也給我們學(xué)習(xí)造成不小的困擾。 什么是'this'關(guān)鍵字 'this'關(guān)鍵字是為每個(gè)執(zhí)行上下文(每個(gè)函數(shù))創(chuàng)建的一個(gè)特殊變量;所以一般來(lái)說(shuō),在使用'this'關(guān)鍵字的函數(shù)中,'this'永遠(yuǎn)是取其所有者的值??偨Y(jié)一句話是該函...
閱讀 2502·2021-08-11 11:16
閱讀 2941·2019-08-30 15:55
閱讀 3342·2019-08-30 12:53
閱讀 1584·2019-08-29 13:28
閱讀 3273·2019-08-28 18:17
閱讀 949·2019-08-26 12:19
閱讀 2476·2019-08-23 18:27
閱讀 717·2019-08-23 18:17