function Shape(type){ this.type = type || "rect"; this.calc = function(){ return "calc, "+this.type; } } var triangle = new Shape("triangle"); print(triangle.calc()); var circle = new Shape("circle"); print(circle.calc()); //运行结果如下: calc, triangle calc, circle
在JavaScript中,通过new操作符来作用与一个函数,实质上会发生这样的动作:
首先,创建一个空对象,然后,用函数的apply方法,将这个空对象传入作为apply的第一个参数,及上下文参数。这样函数内部的this将会被这个空的对象所替代:
var triangle = new Shape("triangle"); //上一句相当于下面的代码 var triangle = {}; Shape.apply(triangle, ["triangle"]);
原文:http://www.cnblogs.com/kuangliu/p/3926716.html