奇妙的js

 更新时间:2007年09月24日 21:37:12   作者:  
复制代码 代码如下:

>>> 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定义后好似没有办法再修改了,不知道是不是这样

相关文章

  • JS highcharts实现动态曲线代码示例

    JS highcharts实现动态曲线代码示例

    这篇文章主要介绍了JS highcharts实现动态曲线代码示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • javascript验证手机号和实现星号(*)代替实例

    javascript验证手机号和实现星号(*)代替实例

    在我们日常开发中经常要验证客户输入的手机号是否正确,有的时候还需要将中间的四位或者前几位用星号(*)代替,那该如何实现呢?下面跟着小编一起来看看。
    2016-08-08
  • js 对象使用的小技巧实例分析

    js 对象使用的小技巧实例分析

    这篇文章主要介绍了js 对象使用的小技巧,结合实例形式分析了JavaScript对象的遍历、查找、事件监听等相关操作技巧,需要的朋友可以参考下
    2019-11-11
  • js 定时器setTimeout无法调用局部变量的解决办法

    js 定时器setTimeout无法调用局部变量的解决办法

    javascript中定时器setTimeout无法调用局部变量,只需要将setTimeout的第一个参数改成函数对象,而不是字符串,就可以了
    2013-11-11
  • JS创建对象的六种方式

    JS创建对象的六种方式

    在js中,对象是键值对的集合,可以通过很多种方式创建; 本文给大家介绍了六种创建方式:对象字面量、构造函数、Object.create()、工厂函数、class、单例模式,需要的朋友可以参考下
    2025-04-04
  • JavaScript中如何校验接口是否重复提交

    JavaScript中如何校验接口是否重复提交

    这篇文章主要为大家详细介绍了在JavaScript中如何校验接口是否重复提交,文中的示例代码讲解详细,有需要的小伙伴可以跟随小编一起学习一下
    2024-03-03
  • js中的escape及unescape函数的php实现代码

    js中的escape及unescape函数的php实现代码

    js中的escape及unescape函数的php实现代码...
    2007-09-09
  • js 动态修改css文件的方法

    js 动态修改css文件的方法

    css文件可以用js 动态修改,在做一些交互动作时,非常实用,下面是具体示例,大家可以看看
    2014-08-08
  • 解决JavaScript精度问题的常见方法

    解决JavaScript精度问题的常见方法

    在 JavaScript 中,处理浮点数时经常会遇到精度丢失的问题,这是由于 JavaScript 内部采用 IEEE 754 标准表示浮点数,导致某些小数无法精确表示,本文将介绍一些常见的方法来解决 JavaScript 中的精度问题,并讨论它们的优缺点,需要的朋友可以参考下
    2024-05-05
  • Bootstrap面板(Panels)的简单实现代码

    Bootstrap面板(Panels)的简单实现代码

    这篇文章主要为大家详细介绍了Bootstrap面板(Panels)的简单实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03

最新评论