源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

奇妙的js

  • 时间:2022-02-18 02:05 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:奇妙的js
[u]复制代码[/u] 代码如下:
>>> 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也是假,更有  代码
[u]复制代码[/u] 代码如下:
>>> 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定义后好似没有办法再修改了,不知道是不是这样
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部