四虎精品视频-四虎精品成人免费网站-四虎黄色网-四虎国产视频-国产免费91-国产蜜臀97一区二区三区

奇妙的js

復制代碼 代碼如下:
>>> 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的原形鏈上,最后還是執行出來了,并且hasOwnProperty也是假,更有 

代碼
復制代碼 代碼如下:
>>> d={};    
Object    
>>> function a(){function b(){return "aaa"} d.c=function(){return b();}}    
>>> a()    
>>> d.c()    
"aaa"   


closure和函數執行的context一點關系沒有,context可以用call apply方法改變this,可是closure在function定義后好似沒有辦法再修改了,不知道是不是這樣

JavaScript技術奇妙的js,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 香谱七十二图解| 尤克里里指弹谱| 质量教育培训的首要内容是() (单选题)| 陕09j01图集| 丧尸童子军| 赖小子| 忍石| 禁忌爱游戏| 汤晶锦| 又大又肥又圆的白屁股| 石隽| 如果云知道歌词| 男女视频在线播放| 刘永健| 卡通频道| 魅力先生王瀚| 100克米饭多大一碗图片| 我的公公电影| 哪吒电影1| 张颜齐| 燃烧的岁月| 石田介雄| 在水一方电影剧情简介| 妻乳| 王梦婷| 进击的巨人最终篇| 九号所有车型图片| 天空骑士| 金太阳教育试卷答案网| 寡妇一级毛片视频| 仙剑奇侠传三图片| 高级英语第四版课后答案| 大内密探零零发演员表| 头文字d演员| 六级词汇电子版| 饮料超人| 暴走财神1| 黑衣人| 颂文| 电影《皮埃里诺》免费观看| 日韩 欧美 视频|