//类和原型的关系:类的所有实例对象都从同一个原型对象上继承属性 //创建一个新对象 function inherit(o) { if( o == null) return null; var t = typeof o; if(t !== "object" && t !== "function") return ; function f(){} f.prototype = o; return new f(); } //这是一个工厂方法,返回一个新对象 function range(from , to) { var r = inherit(range.methods); r.from = from; r.to = to; return r; } //是range的内部方法,也就是原型对象定义的方法 range.methods={ includes:function(x) { return this.from <=x && x<=this.to; }, foreach:function(f){ for(var x = Math.ceil(this.from); x<=this.to; x++) f(x); } } var r = range(1,3); var is = r.includes(2); alert(al.from);
?