摘要:如果沒有當前方法或該方法不屬于任何其它對象,則是指全局對象。正是這種情況如果我們有許多全局變量那么多于代碼的維護和復用將非常的困難。如里面提到的閉包,使用閉包來進行信息的隱藏也能達到減少全局變量的污染。
this是學習每門語言的必備,this理解為當前上下文,它代表函數運行時,自動生成的一個內部對象,只能在函數內部使用。如果沒有當前方法(或該方法不屬于任何其它對象),則是指全局對象。也就是說,this代表調用該方法對象的引用。正是這種情況如果我們有許多全局變量那么多于代碼的維護和復用將非常的困難。 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中類似的構造來實現方法的調用,此時構造的this為fn()對象,在fn中這種結構也被稱為閉包,輸出結果:
在開發的應用中只使用一個全局變量
例如:
這時的FIRSTAPP就成為了我們網頁或者應用的一個基本容器。
如this里面提到的閉包,使用閉包來進行信息的隱藏也能達到減少全局變量的污染。
這是本次一個月的js學習分享,望有更多人提意見共同成長。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/89651.html
摘要:到底什么是閉包這個問題在面試是時候經常都會被問,很多小白一聽就懵逼了,不知道如何回答好。上面這么說閉包是一種特殊的對象。閉包的注意事項通常,函數的作用域及其所有變量都會在函數執行結束后被銷毀。從而使用閉包模塊化代碼,減少全局變量的污染。 閉包,有人說它是一種設計理念,有人說所有的函數都是閉包。到底什么是閉包?這個問題在面試是時候經常都會被問,很多小白一聽就懵逼了,不知道如何回答好。這個...
摘要:一般來講,函數執行完畢后,局部活動對象就會被銷毀,內存中僅保存全局作用域,但是閉包的情況有所不同理解閉包的前提先理解另外兩個內容作用域鏈垃圾回收作用域鏈當代碼在執行過程中,會創建變量對象的一個作用域鏈。 閉包是javascript語言的一個難點,也是它的特色,很多高級應用都要依靠閉包來實現。個人的理解是:函數中嵌套函數。 閉包的定義及其優缺點 閉包是指有權訪問另一個函數作用域中的變量的...
摘要:全局的函數第個對象第個對象作為構造器進行調用也就是利用運算符進行調用。與操作的共同使用只有通過操作產生的對象,可以使用構造器函數原型鏈上的內容,否則對象只能使用自己原型鏈上的內容。 今天這個話題是因為這幾天看了《JavaScript忍者秘籍》,感覺這本書把這幾個內容講的蠻透徹了,特撰本文,以便日后翻閱。(應該都會以知識點的形式給出吧。) 函數 1.【基本類型】 JavaScript中函...
閱讀 2689·2021-10-12 10:12
閱讀 2335·2021-09-02 15:41
閱讀 2561·2019-08-30 15:55
閱讀 1399·2019-08-30 13:05
閱讀 2430·2019-08-29 11:21
閱讀 3535·2019-08-28 17:53
閱讀 3022·2019-08-26 13:39
閱讀 801·2019-08-26 11:50