首页 > 代码库 > S1:new操作符

S1:new操作符

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, trianglecalc, circle    

在JavaScript中,通过new操作符来作用与一个函数,实质上会发生这样的动作:
首先,创建一个空对象,然后,用函数的apply方法,将这个空对象传入作为apply的第一个参数,及上下文参数。这样函数内部的this将会被这个空的对象所替代:

var triangle = new Shape("triangle");//上一句相当于下面的代码var triangle = {};Shape.apply(triangle, ["triangle"]);