首先介绍js两个逆天原生方法 apply call
先看一段代码
function a1(a,b,c)
{
alert(a + b + c);
this.AA = a;
this.BB = b;
this.CC = c;
}
function a2(a,b,c)
{
// a1.apply(this, arguments);
a1.call(this, 1, 2, 3);
}
var tema = new a2(1, 2, 3); 这时会弹出6
alert(tema.AA); 这时弹出 1
a1.apply(this, arguments);
这句话的意思是,执行a1这个方法,而参数确用this这个方法所用到的参数,
基于这个原理就有人发明了class这个方法
如
var Class = function ()
{
var klass = function ()
{
this.init.apply(this, arguments);
};
klass.prototype.init = function () { };
return klass;
}
var Prevson = new Class;
Prevson.prototype.init = function (i)
{
alert(i);
}
var person = new Prevson(5);
我们成功做出来了一个构造函数,当new Rrevson的时候,就会执行init这个方法