摘要:
以往写代码仅仅是为了实现特定的功能,后期维护或别人重用的时候,困难很大。Javascript作为完全面向对象的语言,要写出最优的代码,需要理解对象是如何工作的。1. 对象是javascript的基础,对象是一系列属性的集合,类似其他语言的散列表。如下两个创建对象,并实现属性的例子是相同的。var obj = new Object(); //给对象Obj设置一系列的属性 obj.name = "rxm"; obj.getAge = function() { return (new Date()).getFullYear() - 1986; }; //------------- 阅读全文
摘要:
在javascript中,代码总有一个上下文对象(即:代码属于哪个对象)。上下文对象是通过this实现的,这个变量永远指向当前代码所处的对象中。全局对象其实是window对象的属性。例:下面这个例子运行的时候是会报错的。上下文对象是很容易出问题的,还好我们有call和apply. 和constructor一样,call,apply是Function.prototype的方法。每个Function实例都有的。区分apply,call就一句话, foo.call(this,arg1,arg2,arg3)==foo.apply(this,arguments补救:var main = document 阅读全文
摘要:
闭包:闭包本质上就是函数内部和函数外部架起的一座桥梁。闭包是能够读取其他函数作用域内的变量的函数,由于变量是由作用域范围的,要读取其他作用域范围的变量,需理解javascript的“链式作用域结构”,子对象一级一级的向上寻找父作用域对象。一个小例子:function f1() { var n = 99; function f2() { return n; } return f2; } var result = f1(); alert(result()); //比如这个例子:在f1外部是没办法访问n变量的。但是f1内部的函数f2却可以做到; //那么我们可以让f1函数返回f2函数,通过f2可以在 阅读全文