摘要: (function(){//这里就是块级作用域})();块级作用域 //无论在什么地方,只要临时需要一些变量,就可以使用块级作用域 function outputNumbers(count) { ( function() { for (var i = 0; i < count; i++) {alert(i);} } )(); alert(i); //error } outputNumbers(3);这种技术经常在全局作用域中被用在函数外部,从而限制向全... 阅读全文
posted @ 2012-03-23 12:18 cqclassic 阅读(309) 评论(0) 推荐(0) 编辑
摘要: 很多人认为组合继承是js最常用的继承模式;不过它也有自己的不足。组合继承最大的问题就是无论什么情况下,都会调用两次超类型构造函数:一次是在创建子类型原型的时候另一次是在子类型构造函数内部。这样,子类型最终会包含超类型对象的全部实例属性,但我们不得不在调用子类型构造函数时重写这些属性。function SuperType(name){this.name=name;this.color=["red","blue","green"];}SuperType.prototype.sayName=function(){alert(this.nam 阅读全文
posted @ 2012-03-22 17:25 cqclassic 阅读(500) 评论(0) 推荐(0) 编辑
摘要: 1.组合使用构造函数模式和原型模式。这样每个实例都会有自己的一份实例属性的副本,但同时又共享着对方法的引用,最大限度地节省了内存。//构造函数模式用于定义实例属性function Person(name,age,job){this.name=name;this.age=age;this.job=job;this.friend=["xj","nn"];}//原型模式用于定义方法和共享属性Person.protoype={constructor:Person,sayName:function(){alert(this.name);}}var person1= 阅读全文
posted @ 2012-03-22 16:24 cqclassic 阅读(256) 评论(0) 推荐(1) 编辑