使用隐藏的new来创建对象_jquery_脚本之家

重重时候我们是如此写类,然后利用new成立对象的。 复制代码 代码如下: function Person{
this.name=name; this.age=age; } Person.prototype={ setName :
function{this.name=n;}, getName : function(卡塔尔{return this.name;} } var p
= new Person; 改成这么的 复制代码
代码如下: function Person{ //条件改为或或(this.constructor!=Object卡塔尔(قطر‎ if{
return new Person; } this.name=name; this.age=age; } Person.prototype={
setName : function{this.name=n;}, getName : function(卡塔尔国{return
this.name;} } var p = Person; 注意该类较最上边的写类格局中多了以下 复制代码 代码如下: if{ return new Person; }
好,创制类的实例形式也改成了之类 复制代码
代码如下: var p = Person;
这种创制形式较上边包车型大巴少了“new_澳门贵宾会娱乐官网,”,new和空格,实际上是在类内部new了。而这么格局每一次创造对象能够裁减4个byte。
假使把类内部的if评定标准换到非prototype上的属性,如this.name。程序会提醒出错:too
much recursion 复制代码 代码如下:
function Person{ if{ return new Person; } this.name=name; this.age=age;
} Person.prototype={ setName : function{this.name=n;}, getName :
function(卡塔尔(قطر‎{return this.name;} } var p = Person;

发表评论

电子邮件地址不会被公开。 必填项已用*标注