madbluesky 2009-11-25 01:04
浏览 183
已采纳

一个奇怪的js问题


Object.prototype.xx = function(){
alert("xx");
return "";
}
Object.prototype.yy = function(){
alert("yy");
return "";
}
(function a(){});
(function d(){});


..为什么会输出yy....为什么呢
  • 写回答

3条回答 默认 最新

  • CaiHuajiang 2009-11-25 09:14
    关注

    有输出,奥秒就是在# Object.prototype.yy = function(){

    alert("yy");

    return "";

    }后面少了个分号。

    不说xx,被覆盖,没作用。
    不说后面的b(),因为(function a(){});后面有分号,没输出。
    所以只说中间部分
    Object.prototype.yy = function(){
    alert("yy");
    return "";
    }
    (function a(){});
    这个其实就一句话:function(){}();
    所以结果是在前面定义一个function,并且后面的()进行初始化,导致运行了function程序体。并alert yy。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥500 求解读该段JS代码,需要知道是用干什么的
  • ¥20 qt4代码实现二进制文件读取显示,以及显示的内容进行搜索
  • ¥15 Labview获取LK-G3001数据
  • ¥15 我知道什么是混合树,但是怎么写代码啊
  • ¥50 开发板linux系统安装dpkg,apt函数库 有偿
  • ¥15 浏览器时间循环 交互事件和延时事件的 优先级与执行问题
  • ¥15 GD模块安装出错,libgd无法正常安装
  • ¥20 求有缘人帮我把笛卡尔坐标系转换为经纬度 有偿
  • ¥15 vue2中使用计算属性
  • ¥50 远程桌面打开Mastercam、没有许可证、物理机打开正常