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, triangle
calc, circle    

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

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


作者:狂流
出处:http://www.cnblogs.com/kuangliu/
欢迎转载,分享快乐! 如果觉得这篇文章对你有用,请抖抖小手,推荐一下!

原文地址:https://www.cnblogs.com/kuangliu/p/3926716.html