首页 > Web开发 > 详细

复习JavaScript 3

时间:2014-01-25 20:31:17      阅读:383      评论:0      收藏:0      [点我收藏+]

揭秘命名函数表达式 复习(2)

JScript的BUG

在IE8-(IE6-IE8)中JScript有很多错误

这些会导致:

  • 函数表达式的标示符泄露到外部作用域

    1
    2
    var f = function g(){};
    typeof g; // "function"

  • 把函数表达式同时当作函数声明和函数表达式

    1
    2
    typeof g; // "function"
       var f = function g(){};

    以上两个我觉得问题都在JScript把函数表达式当做函数声明。 因为function g(){}被当做函数声明,在顶部已被解析了,自然而然会被泄露,自然无所谓声明的地方。

  • 命名函数表达式会创建两个截然不同的函数对象

    1
    2
    3
    4
    var f = function g(){};
    f === g; // false
    f.expando = ‘foo‘;
    g.expando; // undefined


感谢@汤姆大叔 的《深入理解JavaScript系列》指导我学习!

复习JavaScript 3

原文:http://www.cnblogs.com/ltchronus/p/3533370.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!