在日期的比较中, >, < , >=, <= 都是按照所预期的正常工作,但==确实按照对象的比较来进行。就是说
var wallFall1 = new Date(1989, 10, 9), wallFall2 = new Date(1989, 10, 9); show(wallFall1.getTime() == wallFall2.getTime());结果是false.
作用域只涉及到function级的,代码块中的作用域无效。 如果在代码块中,声明私有变量,则设为其所在函数级的私有变量。
Splice会修改Array的内容,而slice只是从当前数组中拷贝部分内容出来。
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();