JavaScript的9个陷阱及评点

作者:Realazy 来源:Realazy 时间:2007-08-28 15:10:00 

来自 Nine Javascript Gotchas , 以下是JavaScript容易犯错的九个陷阱。虽然不是什么很高深的技术问题,但注意一下,会使您的编程轻松些,即所谓make life easier. 笔者对某些陷阱会混杂一些评点。

1. 最后一个逗号

如这段代码,注意最后一个逗号,按语言学角度来说应该是不错的(python的类似数据类型辞典dictionary就允许如此)。IE会报语法错误,但语焉不详,你只能用人眼从几千行代码中扫描。


<script>
  var theObj = {
        city : "Boston",
        state : "MA",
  }
</script>


2. this的引用会改变

如这段代码:


<input type="button" value="Gotcha!" id="MyButton" >
<script>
var MyObject = function () {
    this.alertMessage = "Javascript rules";
    this.ClickHandler = function() {
        alert(this.alertMessage );
  }
}();
document.getElementById(”theText”).onclick =  MyObject.ClickHandler
</script>


并不如你所愿,答案并不是”JavaScript rules”。在执行MyObject.ClickHandler时,代码中红色这行,this的引用实际上指向的是document.getElementById("theText")的引用。可以这么解决:


<input type="button" value="Gotcha!" id="theText" >
<script>
var MyObject = function () {
    var self = this;
    this.alertMessage = “Javascript rules”;
    this.OnClick = function() {
        alert(self.value);
    }
}();
document.getElementById(”theText”).onclick =  MyObject.OnClick
</script>


实质上,这就是JavaScript作用域的问题。如果你看过,你会发现解决方案不止一种。

标签:JavaScript,陷阱
0
投稿

猜你喜欢

  • 经验之谈:MySQL与ASP.NET配合更强大

    2008-12-23 15:26:00
  • 高性能表现的网站(译)

    2008-08-31 20:26:00
  • OraclePL/SQL单行函数和组函数详解

    2010-07-28 13:02:00
  • asp通过数组给您的文件列表排序

    2007-10-22 13:45:00
  • ajax框架:ExtJs简介

    2008-09-02 16:51:00
  • MYSQL教程:查询优化之有效加载数据

    2009-02-27 15:45:00
  • 用CSS设置表格Table的细边框的比较好用的方法

    2010-09-06 14:58:00
  • ORACLE11g随RHEL5系统自动启动与关闭的设置方法

    2009-08-31 12:43:00
  • 垂直无缝滚动图片(兼容性好)实例教程源码下载

    2010-04-06 12:16:00
  • 使用线框图来简化你的产品设计流程

    2011-06-10 13:10:00
  • 利用windows任务计划实现oracle的定期备份

    2009-08-31 12:24:00
  • [译]Javascript风格要素(一)

    2008-02-28 12:58:00
  • ASP中数据库调用中常见错误的现象和解决

    2007-09-20 13:24:00
  • 用书的概念理解小网站结构

    2007-10-31 18:08:00
  • 带农历的JavaScript日期时间js代码

    2010-08-01 10:29:00
  • dl+ol应用

    2008-06-21 17:04:00
  • JS与CSS合并写在同一份文件

    2010-01-23 12:33:00
  • PHP结构型模式之外观模式

    2023-05-25 11:43:14
  • SQL Server2000的安全策略

    2007-08-06 17:14:00
  • 用js实现用户输入密码的强度

    2007-11-22 21:41:00
  • asp之家 网络编程 m.aspxhome.com