奇妙的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中的事件处理
Jan 16 Javascript
javascript concat数组累加 示例
Sep 03 Javascript
js 操作符实例代码
Oct 24 Javascript
javascript sudoku 数独智力游戏生成代码
Mar 27 Javascript
分享28款免费实用的 JQuery 图片和内容滑块插件
Dec 15 Javascript
jQuery实现立体式数字滚动条增加效果
Dec 21 Javascript
BootstrapValidator实现注册校验和登录错误提示效果
Mar 10 Javascript
JavaScript html5 canvas实现图片上画超链接
Oct 20 Javascript
js定时器+简单的动画效果实例
Nov 10 Javascript
原生JS写Ajax的请求函数功能
Dec 22 Javascript
AngularJS 多指令Scope问题的解决
Oct 25 Javascript
如何实现小程序tab栏下划线动画效果
May 18 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 获取MSN好友列表的代码(2009-05-14测试通过)
2009/09/09 PHP
Yii入门教程之Yii安装及hello world
2014/11/25 PHP
Yii清理缓存的方法
2016/01/06 PHP
php正则表达式验证(邮件地址、Url地址、电话号码、邮政编码)
2016/03/14 PHP
laravel框架邮箱认证实现方法详解
2019/11/22 PHP
拖动一个HTML元素
2006/12/22 Javascript
JQuery Ajax通过Handler访问外部XML数据的代码
2010/06/01 Javascript
php上传图片并给图片打上透明水印的代码
2010/06/07 Javascript
需要做特殊处理的DOM元素属性的访问
2010/11/05 Javascript
jquery隔行换色效果实现方法
2015/01/15 Javascript
js跨域请求的5中解决方式
2015/07/02 Javascript
jQuery原理系列-常用Dom操作详解
2016/06/07 Javascript
深入理解Angular2 模板语法
2016/08/07 Javascript
H5移动端适配 Flexible方案
2016/10/24 Javascript
js实现右键自定义菜单
2016/12/03 Javascript
微信小程序 定位到当前城市实现实例代码
2017/02/23 Javascript
解决Layui数据表格中checkbox位置不居中的方法
2018/08/15 Javascript
微信小程序拍照和摄像功能实现方法示例
2019/02/01 Javascript
如何使用jQuery操作Cookies方法解析
2020/09/08 jQuery
vue-calendar-component 封装多日期选择组件的实例代码
2020/12/04 Vue.js
[51:27]LGD vs Liquid 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
[01:33]PWL开团时刻DAY2-开雾与反开雾
2020/10/31 DOTA
使用python实现正则匹配检索远端FTP目录下的文件
2015/03/25 Python
Python中的choice()方法使用详解
2015/05/15 Python
Python 访问限制 private public的详细介绍
2018/10/16 Python
Python实现的特征提取操作示例
2018/12/03 Python
python中_del_还原数据的方法
2020/12/09 Python
带你认识HTML5中的WebSocket
2015/05/22 HTML / CSS
台湾演唱会订票网站:StubHub台湾
2019/06/11 全球购物
什么是接口(Interface)?
2013/02/01 面试题
竞选班长的演讲稿
2014/04/24 职场文书
党员干部群众路线个人整改措施
2014/09/18 职场文书
个人租房协议书样本
2014/10/01 职场文书
自查自纠工作总结
2014/10/15 职场文书
2016消防宣传标语口号
2015/12/26 职场文书
Python标准库pathlib操作目录和文件
2021/11/20 Python