摘要:如果沒有當(dāng)前方法或該方法不屬于任何其它對象,則是指全局對象。正是這種情況如果我們有許多全局變量那么多于代碼的維護(hù)和復(fù)用將非常的困難。如里面提到的閉包,使用閉包來進(jìn)行信息的隱藏也能達(dá)到減少全局變量的污染。
this是學(xué)習(xí)每門語言的必備,this理解為當(dāng)前上下文,它代表函數(shù)運行時,自動生成的一個內(nèi)部對象,只能在函數(shù)內(nèi)部使用。如果沒有當(dāng)前方法(或該方法不屬于任何其它對象),則是指全局對象。也就是說,this代表調(diào)用該方法對象的引用。正是這種情況如果我們有許多全局變量那么多于代碼的維護(hù)和復(fù)用將非常的困難。 this的理解:
var name="this_aside"; console.log(this.name); function fn(){ this.name="this_fun"; console.log(this.name); } fn();
此時的輸出:
var name="this_aside"; function fn(){ this.name="this_fun"; console.log(this.name); } fn(); console.log(this.name);
此時的輸出:
var name="this_aside"; var obj={ name:"this_obj", showName:function(){ console.log(this.name); } }; function fn2(){ this.name="this_fn2"; } obj.showName(); obj.showName.apply(this); obj.showName.apply(fn2);
第一個showName()的上下文為obj,而使用apply此時傳入的this代表的則是對象,輸出的fn2即為對象名:
var name="this_aside"; function fn(){ this.name="this_fun"; this.showName = function () { console.log(this.name); } } var value = new fn(); value.showName(); console.log(this.name);
通過與java中類似的構(gòu)造來實現(xiàn)方法的調(diào)用,此時構(gòu)造的this為fn()對象,在fn中這種結(jié)構(gòu)也被稱為閉包,輸出結(jié)果:
在開發(fā)的應(yīng)用中只使用一個全局變量
例如:
這時的FIRSTAPP就成為了我們網(wǎng)頁或者應(yīng)用的一個基本容器。
如this里面提到的閉包,使用閉包來進(jìn)行信息的隱藏也能達(dá)到減少全局變量的污染。
這是本次一個月的js學(xué)習(xí)分享,望有更多人提意見共同成長。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/89651.html
摘要:到底什么是閉包這個問題在面試是時候經(jīng)常都會被問,很多小白一聽就懵逼了,不知道如何回答好。上面這么說閉包是一種特殊的對象。閉包的注意事項通常,函數(shù)的作用域及其所有變量都會在函數(shù)執(zhí)行結(jié)束后被銷毀。從而使用閉包模塊化代碼,減少全局變量的污染。 閉包,有人說它是一種設(shè)計理念,有人說所有的函數(shù)都是閉包。到底什么是閉包?這個問題在面試是時候經(jīng)常都會被問,很多小白一聽就懵逼了,不知道如何回答好。這個...
摘要:春招季如何橫掃面試核心考點基礎(chǔ)版前端面試之路二基礎(chǔ)整理的繼承和的繼承有什么區(qū)別的繼承時通過或構(gòu)造函數(shù)機(jī)制來實現(xiàn)。作用創(chuàng)建私有變量,減少全局變量,防止變量名污染。異步瀏覽器訪問服務(wù)器請求,用戶正常操作,瀏覽器后端進(jìn)行請求。 春招季如何橫掃 Javascript 面試核心考點(基礎(chǔ)版)?前端面試之路二(javaScript基礎(chǔ)整理) ES5的繼承和ES6的繼承有什么區(qū)別 ES5的繼承時通過...
摘要:一般來講,函數(shù)執(zhí)行完畢后,局部活動對象就會被銷毀,內(nèi)存中僅保存全局作用域,但是閉包的情況有所不同理解閉包的前提先理解另外兩個內(nèi)容作用域鏈垃圾回收作用域鏈當(dāng)代碼在執(zhí)行過程中,會創(chuàng)建變量對象的一個作用域鏈。 閉包是javascript語言的一個難點,也是它的特色,很多高級應(yīng)用都要依靠閉包來實現(xiàn)。個人的理解是:函數(shù)中嵌套函數(shù)。 閉包的定義及其優(yōu)缺點 閉包是指有權(quán)訪問另一個函數(shù)作用域中的變量的...
摘要:全局的函數(shù)第個對象第個對象作為構(gòu)造器進(jìn)行調(diào)用也就是利用運算符進(jìn)行調(diào)用。與操作的共同使用只有通過操作產(chǎn)生的對象,可以使用構(gòu)造器函數(shù)原型鏈上的內(nèi)容,否則對象只能使用自己原型鏈上的內(nèi)容。 今天這個話題是因為這幾天看了《JavaScript忍者秘籍》,感覺這本書把這幾個內(nèi)容講的蠻透徹了,特撰本文,以便日后翻閱。(應(yīng)該都會以知識點的形式給出吧。) 函數(shù) 1.【基本類型】 JavaScript中函...
閱讀 2712·2021-10-12 10:12
閱讀 2343·2021-09-02 15:41
閱讀 2577·2019-08-30 15:55
閱讀 1409·2019-08-30 13:05
閱讀 2443·2019-08-29 11:21
閱讀 3542·2019-08-28 17:53
閱讀 3034·2019-08-26 13:39
閱讀 808·2019-08-26 11:50