奇妙的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基础第一章 JavaScript与用户端
Jul 22 Javascript
原生javascript实现拖动元素示例代码
Sep 01 Javascript
使用AngularJS来实现HTML页面嵌套的方法
Jun 17 Javascript
js实现网页多级级联菜单代码
Aug 20 Javascript
jQuery实现横向带缓冲的水平运动效果(附demo源码下载)
Jan 29 Javascript
js数组去重的hash方法
Dec 22 Javascript
工作中常用的js、jquery自定义扩展函数代码片段汇总
Dec 22 Javascript
详解使用fetch发送post请求时的参数处理
Apr 05 Javascript
vue的过滤器filter实例详解
Sep 17 Javascript
6行代码实现微信小程序页面返回顶部效果
Dec 28 Javascript
微信小程序实现点击卡片 翻转效果
Sep 04 Javascript
JavaScript缓动动画函数的封装方法
Nov 25 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
《五等分的花嫁》漫画完结!2020年10月第2期TV动画制作组换血!
2020/03/06 日漫
使用ThinkPHP自带的Http类下载远程图片到本地的实现代码
2011/08/02 PHP
正确的PHP匹配UTF-8中文的正则表达式
2015/05/13 PHP
javascript不同页面传值的改进版
2008/09/30 Javascript
JavaScript的parseInt 进制问题
2009/05/07 Javascript
被jQuery折腾得半死,揭秘为何jQuery为何在IE/Firefox下均无法使用
2010/01/22 Javascript
基于jQuery的消息提示插件之旅 DivAlert(三)
2010/04/01 Javascript
浅谈Javascript中深复制
2014/12/01 Javascript
JS实用的动画弹出层效果实例
2015/05/05 Javascript
四种参数传递的形式——URL,超链接,js,form表单
2015/07/24 Javascript
BootStrap table表格插件自适应固定表头(超好用)
2016/08/24 Javascript
JavaScript制作简单分页插件
2016/09/11 Javascript
JavaScript中setTimeout的那些事儿
2016/11/14 Javascript
有关suggest快速删除后仍然出现下拉列表的bug问题
2016/12/02 Javascript
JS判断鼠标进入容器的方向与window.open新窗口被拦截的问题
2016/12/23 Javascript
Chrome浏览器的alert弹窗禁止再次弹出后恢复的方法
2016/12/30 Javascript
如何使用vuejs实现更好的Form validation?
2017/04/07 Javascript
JS实现图片手风琴效果
2020/04/17 Javascript
bootstrap Table的一些小操作
2017/11/01 Javascript
python实现数通设备tftp备份配置文件示例
2014/04/02 Python
Python实现处理逆波兰表达式示例
2018/07/30 Python
解决Python pip 自动更新升级失败的问题
2020/02/21 Python
python dict乱码如何解决
2020/06/07 Python
html+js 实现markdown编辑器效果
2019/10/23 HTML / CSS
一些Unix笔试题和面试题
2013/01/22 面试题
如何写一个Java类既可以用作applet也可以用作java应用
2016/01/18 面试题
优秀学生获奖感言
2014/02/15 职场文书
大学生职业生涯规划书参考模板
2014/03/05 职场文书
汉语言文学专业自荐信
2014/06/11 职场文书
我的大学四年规划书范文2014
2014/09/26 职场文书
教师个人年终总结
2015/02/11 职场文书
2015年中秋节演讲稿
2015/03/20 职场文书
干货:如何写好工作计划!
2019/05/17 职场文书
2019年妇科护士的自我鉴定(3篇)
2019/09/26 职场文书
详解Redis主从复制实践
2021/05/19 Redis
Redis实战高并发之扣减库存项目
2022/04/14 Redis