奇妙的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 相关文章推荐
通过身份证号得到出生日期和性别的js代码
Nov 23 Javascript
JavaScript Event学习补遗 addEventSimple
Feb 11 Javascript
jquery列表拖动排列(由项目提取相当好用)
Jun 17 Javascript
浅谈Javascript中深复制
Dec 01 Javascript
javascript+html5实现绘制圆环的方法
Jul 28 Javascript
jQuery插件dataTables添加序号列的方法
Jul 06 Javascript
JavaScript的继承实现小结
May 07 Javascript
Vue实现导出excel表格功能
Mar 30 Javascript
微信小程序如何使用云开发
May 17 Javascript
Vue函数式组件的应用实例详解
Aug 30 Javascript
vue内置组件keep-alive事件动态缓存实例
Oct 30 Javascript
微信小程序基础教程之echart的使用
Jun 01 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 is_dir() 判断给定文件名是否是一个目录
2010/05/10 PHP
PHP 如何获取二维数组中某个key的集合
2014/06/03 PHP
DEFER怎么用?
2006/07/01 Javascript
JS实现div内部的文字或图片自动循环滚动代码
2013/04/19 Javascript
可简单避免的三个JS发布错误的详细介绍
2013/08/02 Javascript
Uploadify上传文件方法
2016/03/16 Javascript
利用原生JS自动生成文章标题树的实例
2016/08/22 Javascript
JS日程管理插件FullCalendar中文说明文档
2017/02/06 Javascript
bootstrap fileinput实现文件上传功能
2017/08/23 Javascript
angular2系列之路由转场动画的示例代码
2017/11/09 Javascript
vue scroller返回页面记住滚动位置的实例代码
2018/01/29 Javascript
Express进阶之log4js实用入门指南
2018/02/10 Javascript
详解Bootstrap 学习(一)入门
2019/04/12 Javascript
vue 递归组件的简单使用示例
2021/01/14 Vue.js
python局域网ip扫描示例分享
2014/04/03 Python
python3+PyQt5实现使用剪贴板做复制与粘帖示例
2017/01/24 Python
Python实现GUI学生信息管理系统
2020/04/05 Python
Pytorch 的损失函数Loss function使用详解
2020/01/02 Python
Python3爬虫中Selenium的用法详解
2020/07/10 Python
python中selenium库的基本使用详解
2020/07/31 Python
pytorch 实现L2和L1正则化regularization的操作
2021/03/03 Python
英国时尚运动品牌的合集:The Sports Edit
2017/12/20 全球购物
娇韵诗俄罗斯官方网站:Clarins俄罗斯
2020/10/03 全球购物
医学院四年学习生活的自我评价
2013/11/06 职场文书
大学生村官事迹材料
2014/01/21 职场文书
同学聚会老师邀请函
2014/01/28 职场文书
代理班主任的自我评价
2014/02/04 职场文书
财务工作犯错检讨书
2014/10/07 职场文书
大学生简历自我评价2015
2015/03/03 职场文书
python中Tkinter 窗口之输入框和文本框的实现
2021/04/12 Python
新手必备Python开发环境搭建教程
2021/05/28 Python
postgresql使用filter进行多维度聚合的解决方法
2021/07/16 PostgreSQL
Python使用PyYAML库读写yaml文件的方法
2022/04/06 Python
使用compose函数优化代码提高可读性及扩展性
2022/06/16 Javascript
Python测试框架pytest核心库pluggy详解
2022/08/05 Golang
CSS list-style-type属性使用方法
2023/05/21 HTML / CSS