奇妙的js
更新時間:2007年09月24日 21:37:12 作者:
復制代碼 代碼如下:
>>> function a(){function b(){return "aaa"} Function.prototype.c=function(){return b();}}
>>> a()
>>> a.c
function()
>>> a.c()
"aaa"
>>> a.hasOwnProperty("c")
false
看這段代碼,首先聲明一個函數a,內部又定義了一個函數b,但是函數b不是函數對象a的方法,只是函數a塊當中的臨時變量函數(或者說私有函數,不知道怎么描述好),后面又定義了一個函數c是用function(){}在a內部定義的,所以會產生closure所以c可以遍歷到a下面所有塊內部變量,當然包括b,我又把c掛到了Function.prototype下面,就是不是直接掛a下,而是掛到a的原形鏈上,最后還是執(zhí)行出來了,并且hasOwnProperty也是假,更有
代碼
復制代碼 代碼如下:
>>> d={};
Object
>>> function a(){function b(){return "aaa"} d.c=function(){return b();}}
>>> a()
>>> d.c()
"aaa"
closure和函數執(zhí)行的context一點關系沒有,context可以用call apply方法改變this,可是closure在function定義后好似沒有辦法再修改了,不知道是不是這樣
相關文章
JS highcharts實現(xiàn)動態(tài)曲線代碼示例
這篇文章主要介紹了JS highcharts實現(xiàn)動態(tài)曲線代碼示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-10-10
javascript驗證手機號和實現(xiàn)星號(*)代替實例
在我們日常開發(fā)中經常要驗證客戶輸入的手機號是否正確,有的時候還需要將中間的四位或者前幾位用星號(*)代替,那該如何實現(xiàn)呢?下面跟著小編一起來看看。2016-08-08
js中的escape及unescape函數的php實現(xiàn)代碼
js中的escape及unescape函數的php實現(xiàn)代碼...2007-09-09
Bootstrap面板(Panels)的簡單實現(xiàn)代碼
這篇文章主要為大家詳細介紹了Bootstrap面板(Panels)的簡單實現(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-03-03

