奇妙的js


Posted in Javascript onSeptember 24, 2007
>>> 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 相关文章推荐
FF IE兼容性的修改小结
Sep 02 Javascript
拖动布局之保存布局页面cookies篇
Oct 29 Javascript
基于Jquery插件开发之图片放大镜效果(仿淘宝)
Nov 19 Javascript
jqeury-easyui-layout问题解决方法
Mar 24 Javascript
Jquery设置attr的disabled属性控制某行显示或者隐藏
Sep 25 Javascript
使用jQuery简单实现模拟浏览器搜索功能
Dec 21 Javascript
JavaScript设计模式之建造者模式介绍
Dec 28 Javascript
在knockoutjs 上自己实现的flux(实例讲解)
Dec 18 Javascript
解决LayUI表单获取不到data的问题
Aug 20 Javascript
微信小程序导航栏跟随滑动效果的实现代码
May 14 Javascript
详解Vue中的基本语法和常用指令
Jul 23 Javascript
如何在Angular8.0下使用ngx-translate进行国际化配置
Jul 24 Javascript
让getElementsByName适应IE和firefox的方法
Sep 24 #Javascript
js的with语句使用方法
Sep 21 #Javascript
从阿里妈妈发现的几个不错的表单验证函数
Sep 21 #Javascript
指定js可访问其它域名的cookie的方法
Sep 18 #Javascript
完整显示当前日期和时间的JS代码
Sep 17 #Javascript
符合标准的js表单提交的代码
Sep 13 #Javascript
js类后台管理菜单类-MenuSwitch
Sep 12 #Javascript
You might like
php 前一天或后一天的日期
2008/06/28 PHP
安装apache2.2.22配置php5.4(具体操作步骤)
2013/06/26 PHP
小谈php正则提取图片地址
2014/03/27 PHP
在PHP 7下安装Swoole与Yar,Yaf的方法教程
2017/06/02 PHP
css把超出的部分显示为省略号的方法兼容火狐
2008/07/23 Javascript
javascript下4个跨浏览器必备的函数
2010/03/07 Javascript
Jquery 监视按键,按下回车键触发某方法的实现代码
2014/05/11 Javascript
javascript实现列表滚动的方法
2015/07/30 Javascript
jQuery实现可用于博客的动态滑动菜单完整实例
2015/09/17 Javascript
浅析Jquery操作select
2016/12/13 Javascript
JS弹性运动实现方法分析
2016/12/15 Javascript
jQuery.cookie.js实现记录最近浏览过的商品功能示例
2017/01/23 Javascript
微信小程序中的swiper组件详解
2017/04/14 Javascript
jquery实现tab选项卡切换效果(悬停、下方横线动画位移)
2017/05/05 jQuery
基于Vue的ajax公共方法(详解)
2018/01/20 Javascript
Vue.directive()的用法和实例详解
2018/03/04 Javascript
bootstrap中selectpicker下拉框使用方法实例
2018/03/22 Javascript
浅谈webpack 自动刷新与解析
2018/04/09 Javascript
通过jquery的ajax请求本地的json文件方法
2018/08/08 jQuery
Vue自定义弹窗指令的实现代码
2018/08/13 Javascript
详解Vue结合后台的列表增删改案例
2018/08/21 Javascript
JavaScript实现HTML导航栏下拉菜单
2020/11/25 Javascript
Vue在H5 项目中使用融云进行实时个人单聊通讯
2020/12/14 Vue.js
[57:24]LGD vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python实现更改图片尺寸大小的方法(基于Pillow包)
2016/09/19 Python
Python在不同目录下导入模块的实现方法
2017/10/27 Python
python模块smtplib学习
2018/05/22 Python
解决Jupyter notebook中.py与.ipynb文件的import问题
2020/04/21 Python
python3中sys.argv的实例用法
2020/04/24 Python
浅谈python3打包与拆包在函数的应用详解
2020/05/02 Python
详解Python中的GIL(全局解释器锁)详解及解决GIL的几种方案
2021/01/29 Python
美国娱乐和流行文化商品店:FYE
2017/09/14 全球购物
英国文具、办公用品和科技商店:Ryman
2018/09/27 全球购物
中学家长会邀请函
2014/02/03 职场文书
捐资助学倡议书
2014/04/15 职场文书
2015大学迎新标语
2015/07/16 职场文书