时间:2021-05-25
很多时候我们是这样写类,然后使用new创建对象的。
复制代码 代码如下:
function Person(name,age){
this.name=name;
this.age=age;
}
Person.prototype={
setName : function(n){this.name=n;},
getName : function(){return this.name;}
}
var p = new Person('jack',25);
改成这样的
复制代码 代码如下:
function Person(name,age){
//条件改为(this==window)或(this==self)或(this.constructor!=Object)
if(!this.setName){
return new Person(name,age);
}
this.name=name;
this.age=age;
}
Person.prototype={
setName : function(n){this.name=n;},
getName : function(){return this.name;}
}
var p = Person('jack',25);
注意该类较最上面的写类方式中多了以下
复制代码 代码如下:
if(!this.setName){
return new Person(name,age);
}
好,创建类的实例(对象)方式也变成了如下
复制代码 代码如下:
var p = Person('jack',25);
这种创建方式(函数调用)较上面的少了“new_”,new和空格,实际上是在类内部new了。而这样方式每次创建对象可以减少4个byte。
如果把类内部的if判断条件换成非prototype上的属性,如this.name。程序会提示出错:too much recursion
复制代码 代码如下:
function Person(name,age){
if(!this.name){
return new Person(name,age);
}
this.name=name;
this.age=age;
}
Person.prototype={
setName : function(n){this.name=n;},
getName : function(){return this.name;}
}
var p = Person('jack',25);
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
在C#中,new关键字可用作运算符、修饰符或约束。new运算符用于创建对象和调用构造函数。new修饰符用于向基类成员隐藏继承成员。new约束用于在泛型声明中约束
前言当我们想要创建一个对象,我们可能使用new方法去构建一个对象,那按道理jquery也是一个对象,应该也是用newjquery()来构建呀为什么我们创建jqu
1)new运算符:用于创建对象和调用构造函数。这种大家都比较熟悉,没什么好说的了。2)new修饰符:在用作修饰符时,new关键字可以显式隐藏从基类继承的成员。3
JS中的函数即可以是构造函数又可以当作普通函数来调用,当使用new来创建对象时,对应的函数就是构造函数,通过对象来调用时就是普通函数。普通函数的创建有:显式声明
多维数组定义定义数组数组对象用来在单独的变量名中存储一系列的值。使用关键词new来创建数组对象。一维数组定义varmyArray=newArray('a','b