奇妙的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 相关文章推荐
jquery 学习之二 属性相关
Nov 23 Javascript
jQuery EasyUI API 中文文档 - Panel面板
Sep 30 Javascript
javascript事件模型实例分析
Jan 30 Javascript
JavaScript调用浏览器打印功能实例分析
Jul 17 Javascript
js实现4个方向滚动的球
Mar 06 Javascript
ES6学习笔记之正则表达式和字符串正则方法分析
Apr 25 Javascript
javascript简单链式调用案例分析
May 10 Javascript
VUE 全局变量的几种实现方式
Aug 22 Javascript
vue-cli 打包后提交到线上出现 "Uncaught SyntaxError:Unexpected token" 报错
Nov 06 Javascript
ES6知识点整理之函数数组参数的默认值及其解构应用示例
Apr 17 Javascript
Vue之Mixins(混入)的使用方法
Sep 24 Javascript
解决element-ui里的下拉多选框 el-select 时,默认值不可删除问题
Aug 14 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 数组动态添加实现代码(最土团购系统的价格排序)
2011/12/30 PHP
php实现TCP端口检测的方法
2015/04/01 PHP
使用 PHP Masked Package 屏蔽敏感数据的实现方法
2019/10/15 PHP
由浅到深了解JavaScript类
2006/09/08 Javascript
根据鼠标的位置动态的控制层的位置
2009/11/24 Javascript
JS获取下拉列表所选中的TEXT和Value的实现代码
2014/01/11 Javascript
悬浮数字的实现案例
2014/02/19 Javascript
php的文件上传入门教程(实例讲解)
2014/04/10 Javascript
javascript实现支持移动设备画廊
2015/08/24 Javascript
vue实现可增删查改的成绩单
2016/10/27 Javascript
利用transition实现文字上下抖动的效果
2017/01/21 Javascript
jQuery内容筛选选择器实例代码
2017/02/06 Javascript
JS时间控制实现动态效果的实例讲解
2017/07/31 Javascript
使用ESLint禁止项目导入特定模块的方法步骤
2019/03/04 Javascript
javascript实现时间日期的格式化的方法汇总
2020/08/06 Javascript
Vue实现boradcast和dispatch的示例
2020/11/13 Javascript
详解Python中contextlib上下文管理模块的用法
2016/06/28 Python
Python使用time模块实现指定时间触发器示例
2017/05/18 Python
Tensorflow中的placeholder和feed_dict的使用
2018/07/09 Python
python游戏开发之视频转彩色字符动画
2019/04/26 Python
python:按行读入,排序然后输出的方法
2019/07/20 Python
python threading和multiprocessing模块基本用法实例分析
2019/07/25 Python
python 提取文件指定列的方法示例
2019/08/07 Python
python Web flask 视图内容和模板实现代码
2019/08/23 Python
Python web框架(django,flask)实现mysql数据库读写分离的示例
2020/11/18 Python
实习生的自我鉴定范文欣赏
2013/11/20 职场文书
前台接待岗位职责
2013/12/03 职场文书
幼儿园教师国培感言
2014/02/02 职场文书
人事专员工作职责
2014/02/22 职场文书
《少年王冕》教学反思
2014/04/11 职场文书
材料专业大学毕业生自荐书
2014/07/02 职场文书
关于感谢信的范文
2015/01/23 职场文书
python如何正确使用yield
2021/05/21 Python
Apache Hudi数据布局黑科技降低一半查询时间
2022/03/31 Servers
多人盗宝《绿林侠盗》第三赛季4.5上线 跨平台实装
2022/04/03 其他游戏
《火纹风花雪月无双》预告“神秘雇佣兵” 紫发剑客
2022/04/13 其他游戏