奇妙的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实现页面定时跳转总结篇
Sep 21 Javascript
JavaScript的Backbone.js框架的一些使用建议整理
Feb 14 Javascript
JavaScript 消息框效果【实现代码】
Apr 27 Javascript
jQuery插件formValidator实现表单验证
May 23 Javascript
JavaScript中this的四个绑定规则总结
Sep 26 Javascript
JavaScript函数柯里化原理与用法分析
Mar 31 Javascript
JS使用正则表达式找出最长连续子串长度
Oct 26 Javascript
Vue表单及表单绑定方法
Sep 04 Javascript
js中int和string数据类型互相转化实例
Jan 16 Javascript
echarts实现词云自定义形状的示例代码
Feb 20 Javascript
如何换个角度使用VUE过滤器详解
Sep 11 Javascript
vue data变量相互赋值后被实时同步的解决步骤
Aug 05 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脚本数据库功能详解(下)
2006/10/09 PHP
php实现的仿阿里巴巴实现同类产品翻页
2009/12/11 PHP
jquery easyui的tabs使用时的问题
2010/03/23 Javascript
JavaScript 轻松搞定快捷留言功能 只需一行代码
2010/04/01 Javascript
jQuery EasyUI API 中文文档 - Pagination分页
2011/09/29 Javascript
JS和JQUERY获取页面大小,滚动条位置,元素位置(示例代码)
2013/12/14 Javascript
打造个性化的功能强大的Jquery虚拟键盘(VirtualKeyboard)
2014/10/11 Javascript
JS日期加减,日期运算代码
2015/11/05 Javascript
JavaScript驾驭网页-CSS与DOM
2016/03/24 Javascript
Ionic如何实现下拉刷新与上拉加载功能
2016/06/03 Javascript
js学习之----深入理解闭包
2016/11/21 Javascript
JavaScript微信定位功能实现方法
2016/11/29 Javascript
Bootstrap风格的WPF样式
2016/12/07 Javascript
input输入密码变黑点密文的实现方法
2017/01/09 Javascript
关于使用js算总价的问题
2017/06/23 Javascript
前端主流框架vue学习笔记第一篇
2017/07/26 Javascript
JavaScript callback回调函数用法实例分析
2018/05/08 Javascript
基于jQuery ztree实现表格风格的树状结构
2018/08/31 jQuery
vue 实现搜索的结果页面支持全选与取消全选功能
2019/05/10 Javascript
[49:43]VG vs FNATIC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
[33:28]完美世界DOTA2联赛PWL S3 PXG vs GXR 第三场 12.19
2020/12/24 DOTA
Python使用sorted排序的方法小结
2017/07/28 Python
对Python 3.2 迭代器的next函数实例讲解
2018/10/18 Python
对python中数组的del,remove,pop区别详解
2018/11/07 Python
Python 实现自动获取种子磁力链接方式
2020/01/16 Python
详解Pycharm安装及Django安装配置指南
2020/09/15 Python
俄罗斯运动鞋商店:Sneakerhead
2018/05/10 全球购物
美国LOGO设计公司:The Logo Company
2018/07/16 全球购物
介绍一下MYSQL常用的优化技巧
2012/10/25 面试题
电气工程师岗位职责
2014/01/01 职场文书
教学大赛获奖感言
2014/01/15 职场文书
2015年中职班主任工作总结
2015/05/25 职场文书
夏洛特的网观后感
2015/06/15 职场文书
行政复议答复书
2015/07/01 职场文书
centos8安装MongoDB的详细过程
2021/10/24 MongoDB
使用 Docker Compose 构建复杂的多容器App
2022/04/30 Servers