Eloquant Javscript读书笔记

标签: 读书functiondatestring工作
682人阅读 评论(0) 收藏 举报
  • Date的比较特殊之处 ==

在日期的比较中, >, < , >=, <= 都是按照所预期的正常工作,但==确实按照对象的比较来进行。就是说

var wallFall1 = new Date(1989, 10, 9),
wallFall2 = new Date(1989, 10, 9);
show(wallFall1.getTime() == wallFall2.getTime());
结果是false.

  • Javascript的作用域

作用域只涉及到function级的,代码块中的作用域无效。 如果在代码块中,声明私有变量,则设为其所在函数级的私有变量。

  • Array.splice vs Array.slice

Splice会修改Array的内容,而slice只是从当前数组中拷贝部分内容出来。

  • Number/Boolean/String的强制类型转化

Number(xxxx),  String(xxx), Boolean(xxx)

  •  私有函数

一般而言,函数是一级公民,但常常忽略的是函数之内还可以声明函数,即私有函数。 私有函数的使用可以提高代码本身的聚合度和整洁性。

单例模式的实现

单例模式的实现有多重方式。比如全局变量,直接对象等。如果基于闭包则会更为间接优美。 其本质是在单例函数类的对象为单例,但是提供访问单例对象的途径(对象)其本身会是多个的。

var LazySingleton = function(){
    var attr = 1, fn = function(){};
    var obj = {
        method : function(){ fn(); },
        getAttr : function(){ return attr; }
    };
    function init(){
        return obj;
    }
    return {getInstace: init};
}();

实现的访问方式:

LazySingleton.getInstance().method();
LazySingleton.getInstance().getAttr();



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1530437次
    • 积分:13020
    • 等级:
    • 排名:第1016名
    • 原创:346篇
    • 转载:48篇
    • 译文:0篇
    • 评论:4173条
    最新评论
    SearchEngin