摘要:閉包這是我對(duì)閉包的一點(diǎn)小理解有問(wèn)題請(qǐng)直接指出在此先謝過(guò)閉包的含義封閉隔離的空間在中只有函數(shù)能夠符合這種特性為什么要用閉包呢因?yàn)樵谝猛獠课募绺鞣N框架時(shí)防止變量重名造成的問(wèn)題同時(shí)也使代碼更具隱私性獲取閉包中數(shù)據(jù)的方法一般采用對(duì)象因?yàn)閷?duì)象可以
閉包
這是我對(duì)閉包的一點(diǎn)小理解.有問(wèn)題請(qǐng)直接指出,在此先謝過(guò)!
閉包的含義
封閉隔離的空間,在javascript中,只有函數(shù)能夠符合這種特性;
為什么要用閉包呢?
因?yàn)樵谝猛獠縥s文件(如jquery,各種框架)時(shí)防止變量重名造成的問(wèn)題,同時(shí)也使代碼更具隱私性;
獲取閉包中數(shù)據(jù)的方法:
一般采用 return 對(duì)象,因?yàn)閷?duì)象可以添加多個(gè)方法,讓每個(gè)方法返回對(duì)應(yīng)的值
下面是一個(gè)閉包的案例參考
//閉包,把所有代碼都寫(xiě)在自調(diào)用函數(shù)里,以防重名; (function () { function foo(name,age,gender) { var flag=false; //設(shè)置一個(gè)節(jié)流閥,判斷條件 return { //這里返回一個(gè)對(duì)象 get_Name:function() { //給對(duì)象設(shè)置方法 return name; },set_Name:function (value) { return name=value; },get_Age:function () { return age; },get_Gender:function () { return gender },set_Gender:function (value) { if(flag==false){ //當(dāng)你修改過(guò)一次性別后,再次修改將會(huì)報(bào)錯(cuò); flag=true; return gender=value; }else{ throw new Error("您已經(jīng)更改過(guò)性別了,只能修改一次"); } } } } var F=foo("劉躍盛",23,"男"); //調(diào)用函數(shù)foo()并把返回的對(duì)象賦值給到變量 F ; var A=foo("章旭卉",21,"女"); console.log(A.set_Name("章舒涵")); console.log(F.set_Gender("女")); //修改性別 console.log(F.set_Gender("男"));//再次修改報(bào)錯(cuò) })();
加油!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/89508.html
摘要:首先變量對(duì)于一個(gè)程序來(lái)說(shuō)是一個(gè)很重要的角色那么問(wèn)題來(lái)了這些變量存在哪里程序用到的時(shí)候如何找到變量呢所以需要一套規(guī)則來(lái)存儲(chǔ)變量方便之后再找到這套規(guī)則就成為作用域是一門(mén)編譯語(yǔ)言對(duì)于來(lái)說(shuō)大部分情況下編譯發(fā)生在代碼執(zhí)行前的幾微妙的時(shí)間內(nèi)對(duì)于參與到一 首先,變量對(duì)于一個(gè)程序來(lái)說(shuō)是一個(gè)很重要的角色, 那么問(wèn)題來(lái)了 這些變量存在哪里,程序用到的時(shí)候如何找到變量呢? 所以需要一套規(guī)則來(lái)存儲(chǔ)變量方便之后...
摘要:類(lèi)型是提供的引用類(lèi)型之一,通過(guò)可需變更創(chuàng)建對(duì)象。調(diào)用自身的函數(shù)被稱(chēng)之為遞歸函數(shù)。想要解決上述遞歸函數(shù)的問(wèn)題,可以使用對(duì)象屬性替換具體的函數(shù)名。保護(hù)貢獻(xiàn)的局部變量。 Function類(lèi)型 概述 Function與函數(shù) 函數(shù)是這樣的一段JavaScript代碼,她只定義一次,但是可能被執(zhí)行或調(diào)用多次。Function類(lèi)型是JavaScript提供的引用類(lèi)型之一,通過(guò)Function可u需變...
摘要:大名鼎鼎的閉包面試必問(wèn)。閉包的作用是什么??吹介]包在哪了嗎閉包到底是什么五年前,我也被這個(gè)問(wèn)題困擾,于是去搜了并總結(jié)下來(lái)。關(guān)于閉包的謠言閉包會(huì)造成內(nèi)存泄露錯(cuò)。閉包里面的變量明明就是我們需要的變量,憑什么說(shuō)是內(nèi)存泄露這個(gè)謠言是如何來(lái)的因?yàn)椤? 本文為饑人谷講師方方原創(chuàng)文章,首發(fā)于 前端學(xué)習(xí)指南。 大名鼎鼎的閉包!面試必問(wèn)。請(qǐng)用自己的話(huà)簡(jiǎn)述 什么是「閉包」。 「閉包」的作用是什么。 首先...
摘要:函數(shù)作用域要理解閉包,必須從理解函數(shù)被調(diào)用時(shí)都會(huì)發(fā)生什么入手。可以說(shuō),閉包是函數(shù)作用域的副產(chǎn)品。無(wú)論通過(guò)何種手段將內(nèi)部函數(shù)傳遞到所在的詞法作用域以外,它都會(huì)持有對(duì)原始定義作用域的引用,無(wú)論在何處執(zhí)行這個(gè)函數(shù)都會(huì)使用閉包。 函數(shù)作用域 要理解閉包,必須從理解函數(shù)被調(diào)用時(shí)都會(huì)發(fā)生什么入手。 我們知道,每個(gè)javascript函數(shù)都是一個(gè)對(duì)象,其中有一些屬性我們可以訪(fǎng)問(wèn)到,有一些不可以訪(fǎng)問(wèn),...
摘要:本文是本人閱讀學(xué)習(xí)深入理解原型和閉包時(shí)所作的總結(jié)和筆記,當(dāng)然也引用了很多原文,感興趣的朋友也可以直接去看原文。即這里的稱(chēng)為隱式原型。注意,構(gòu)造函數(shù)的函數(shù)名第一個(gè)字母大寫(xiě)規(guī)則約定。但實(shí)際上,上述情況是一種理想的情況。 本文是本人閱讀學(xué)習(xí)深入理解JavaScript原型和閉包時(shí)所作的總結(jié)和筆記,當(dāng)然也引用了很多原文,感興趣的朋友也可以直接去看原文。 1、一切都是對(duì)象 先說(shuō)結(jié)論,一切引用類(lèi)型...
閱讀 4031·2021-11-22 13:53
閱讀 1733·2021-09-23 11:52
閱讀 2449·2021-09-06 15:02
閱讀 965·2019-08-30 15:54
閱讀 913·2019-08-30 14:15
閱讀 2394·2019-08-29 18:39
閱讀 666·2019-08-29 16:07
閱讀 428·2019-08-29 13:13