奇妙的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 相关文章推荐
javascript动态改变img的src属性图片不显示的解决方法
Oct 20 Javascript
一个页面放2段图片滚动代码出现冲突的问题如何解决
Dec 21 Javascript
Javascript算符的优先级介绍
Mar 20 Javascript
JS实现文字放大效果的方法
Mar 03 Javascript
一道优雅面试题分析js中fn()和return fn()的区别
Jul 05 Javascript
JavaScript数据操作_浅谈原始值和引用值的操作本质
Aug 23 Javascript
js实现复选框的全选和取消全选效果
Jan 03 Javascript
jQuery的ajax中使用FormData实现页面无刷新上传功能
Jan 16 Javascript
浅谈ES6新增的数组方法和对象
Aug 08 Javascript
详解在vue-cli中使用graphql即vue-apollo的用法
Sep 08 Javascript
vue中的适配px2rem示例代码
Nov 19 Javascript
JS扁平化输出数组的2种方法解析
Sep 17 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最常用的2种设计模式工厂模式和单例模式介绍
2012/08/14 PHP
PHP中的按位与和按位或操作示例
2014/01/27 PHP
javascript延时重复执行函数 lLoopRun.js
2007/06/29 Javascript
js 页面执行时间计算代码
2009/03/04 Javascript
JavaScript中的关键字"VAR"使用详解 分享
2013/07/31 Javascript
js数组中如何随机取出一个值
2014/06/13 Javascript
js实现鼠标悬停图片上时滚动文字说明的方法
2015/02/17 Javascript
JavaScript中this详解
2015/09/01 Javascript
Spring MVC中Ajax实现二级联动的简单实例
2016/07/06 Javascript
AngularJS操作键值对象类似java的hashmap(填坑小结)
2016/11/12 Javascript
微信小程序 首页制作简单实例
2017/04/07 Javascript
Node.js模块全局安装路径配置方法
2018/05/17 Javascript
在小程序中集成redux/immutable/thunk第三方库的方法
2018/08/12 Javascript
vue搜索页开发实例代码详解(热门搜索,历史搜索,淘宝接口演示)
2020/04/11 Javascript
[01:43]倾听DOTA2英雄之声 魅惑魔女国服配音鉴赏
2013/06/06 DOTA
跟老齐学Python之使用Python查询更新数据库
2014/11/25 Python
python创建临时文件夹的方法
2015/07/06 Python
python 出现SyntaxError: non-keyword arg after keyword arg错误解决办法
2017/02/14 Python
python中requests使用代理proxies方法介绍
2017/10/25 Python
python与sqlite3实现解密chrome cookie实例代码
2018/01/20 Python
python调用API实现智能回复机器人
2018/04/10 Python
对python字典过滤条件的实例详解
2019/01/22 Python
python获取栅格点和面值的实现
2020/03/10 Python
浅谈keras通过model.fit_generator训练模型(节省内存)
2020/06/17 Python
使用OpenCV去除面积较小的连通域
2020/07/05 Python
PyQt5-QDateEdit的简单使用操作
2020/07/12 Python
Canvas 文字碰撞检测并抽稀的方法
2019/05/27 HTML / CSS
英国时尚高尔夫服装购物网站:Trendy Golf
2020/01/10 全球购物
英文翻译的自我评价语句
2013/10/04 职场文书
历史学专业个人的自我评价
2013/10/13 职场文书
市场专员岗位职责
2014/02/14 职场文书
《纸船和风筝》教学反思
2014/02/15 职场文书
会计人员岗位职责
2014/03/19 职场文书
大专生自我鉴定怎么写
2014/09/16 职场文书
检讨书怎么写
2015/01/23 职场文书
Windows和Linux上部署Golang并运行程序
2022/04/22 Servers