zoukankan      html  css  js  c++  java
  • [转]JavaScript中的几个tip

    1、JavaScript中的继承
    在 JavaScript中实现继承的方法是:将子类的 prototype 属性设置为父类的对象。
    例如,我有一个 Basket 类,继承 Hashtable 类:
    java代码:

    Basket.prototype = new Hashtable();
    Basket.prototype.constructor = Basket;



    如果不写上面第二句,以后 typeof 一个 Basket 的对象获得的就是 Hashtable 了。

    但是需要注意的是,由于所有的子类(Basket)的对象实例共享同一个原型对象(Hashtable),因此在父类对象的构造函数中只能保存对所有子类对象均相同的实例变量。对每个子类不同的实例变量必须放在子类的的构造函数中。很多时候父类对象没有任何自己的实例变量,而只有一些方法,操作的是子类对象的实例变量。

    2、JavaScript中变量的作用域
    JavaScript代码:

    var v = "aaa";
    function func() {
    alert(v);
    ...
    var v = "bbb";
    }


    alert 出来的是什么?你肯定会说是 "aaa",错,alert 出来的是 "undefined"。为什么?
    因为 java-script 为了简化处理,变量实际上只有两种作用域,全局变量和函数的内部变量。你在函数内部任何一个地方定义的变量其作用域都是整个函数体。而在 alert 的时候函数的内部变量 v 已经定义了,并且覆盖掉了同名的全局变量 的定义,只是还没有被初始化,所以 alert 出来的是 "undefined"。

    3、undefined 和 null
    有些开发人员误以为在 java-script 中,
    return;
    返回的就是 null,也就是
    return null;

    这是一个误解,在 java-script 中,
    return;
    返回的是 undefined,而不是 null。这两个值是有区别的,请看《JavaScritp 权威指南》的相关内容。最好明确地写为:
    return null;

    这个问题同样在传递参数时候也会出现,例如:
    JavaScript代码:

    function func(v1, v2) {
    alert(v2);
    }
    func(1);


    alert 显示 v2 的值是 undefined。

    虽然在 JavaScript中:
    undefined == null;
    得到的结果是 true,将一个 typeof 为 "undefined" 的标识符与 null 做等值比较结果也是 true,似乎这两个值可以混用。但是为了理解的清晰,最好还是把这两个值区分开。

    还有一个需要注意的是在 SP2 以前版本的 IE5 中,不能直接拿 undefined 与其它值比较,例如:
    JavaScript代码:

    if(v2 == undefined) {
    ...
    }



    在 SP3 以上版本的 IE5、IE6 都没问题,但是在 SP2 版本前的 IE5 中无法执行。必须要写成:
    java代码:

    if(typeof v2 == "undefined") {
    ...
    }

    支持TerryLee的创业产品Worktile
    Worktile,新一代简单好用、体验极致的团队协同、项目管理工具,让你和你的团队随时随地一起工作。完全免费,现在就去了解一下吧。
    https://worktile.com
  • 相关阅读:
    找控件的父类
    silverlight和wpf中暴露 给子类override
    Oracle PLSQL 记录
    C#之TopShelf启动Windows服务 原文链接:https://blog.csdn.net/qq_36664495/java/article/details/90600995
    Super socket 记录知识
    oracle 查找字符位置 开始按照长度截取
    转 acl 库是啥、主要包含哪些功
    转自 posted on 2015-05-18 11:50 LitDev https://www.cnblogs.com/New-world/p/4511543.html
    dtu server 编译错误
    iOS 杂笔-22(万年一遇~一张图片对代理的理解)
  • 原文地址:https://www.cnblogs.com/Terrylee/p/265456.html
Copyright © 2011-2022 走看看