用Javascript创建自定义对象的方法摘要

用Javascript创建对象有很多种方法。

对象构造函数/对象文字数量:

除了设计模式之外,最基本的使用方法是首先调用对象构造函数来创建对象,然后向对象添加属性。

复制代码代码如下所示:

学生=新对象();

student.name = 肖明;

student.age = 20;

student.getname =函数(){

警报(这个名字);

}



熟悉Javascript对象数量的学生可以改变一种更好的写作方式,至少看起来更简洁。

复制代码代码如下所示:

var学生{ {

姓名:萧红

年龄:18岁,

getName:函数(){

警报(这个名字);

}

};



缺点:上述方法的缺点是,当使用相同的接口创建许多相似的对象时,可以生成大量的重复,这很容易理解。函数(方法或类)通常用于创建公共方法,因此对象创建过程根本就没有函数阴影,因此无法重用。

工厂模式:

工厂模式抽象了创建对象的过程,就像一个黑盒子,如果你调用一个函数(进入工厂)并传递相应的参数(各种原材料),你就会产生一个相应的对象(工厂生产的产品),工厂模式解决了创建多个相似对象的问题。

复制代码代码如下所示:

功能studentfactory(姓名,年龄){

学生=新对象();

student.name =名称;

student.age =年龄;

student.sayname =函数(){

警报(这个名字);

}

返回的学生;

}

VaR P1 = studentfactory(明

VaR P2 = studentfactory(红



缺点:工厂模式也有缺点,最大的缺点是对象类型识别问题。它只能判断对象的对象类型(P1实例对象),不能指定哪些类型是。事实上,通过工厂模式创建的学生也有类似的属性和方法,但价值是不同的,更好的方法是创建一个学生功能使所有物体都属于学生类型。所以工厂模式并不坏,只有构造器模式更好。

自定义类型构造函数:

构造函数可用于创建特定类型的对象。

复制代码代码如下所示:

函数学生(姓名,年龄){

this.name =名称;

this.age =年龄;

this.sayname =函数(){

警报(这个名字);

}

}

新学生()

新学生()

警报(P3是学生);

警报(P3,P4 sayname = =。sayname); / /假



缺点:自定义构造函数的缺点是每个对象都会重新创建自己的方法。这些功能都是相同的(如sayname),但它们是不同的(p3.sayname和p4.sayname不相等)。

原型模式:

定义一个null函数,并将所有属性和方法添加到原型中,以便所有对象共享属性和方法。

复制代码代码如下所示:

函数(学生){ };

student.prototype.name =明;

student.prototype.age = 20;

student.prototype.friends = { 'qi};

(student.prototype.sayname =功能){

警报(这个名字);

};



缺点:有些属性是不能共享的,而共享带来的问题,比如:朋友。

构造函数和原型的组合:

复制代码代码如下所示:

函数学生(姓名,年龄,朋友){

this.name =名称;

this.age =年龄;

this.friends =朋友;

}

student.prototype = { {

构造函数:学生,

sayname:函数(){

警报(这个名字);

}

};



概要:构造函数和原型的结合是一种被广泛接受的创建自定义类型的方法,也是这些方法的最佳方法。

************************************************************************************************************* / /

事实上,有很多方法可以创建对象,但是仍然有一些需要优化的特殊场景。

动态样机模型:

对构造函数和原型的组合进行优化,对这些共享属性和方法进行初始化,不需要重复初始化,提高效率。

复制代码代码如下所示:

函数学生(姓名,年龄){

this.name =名称;

this.age =年龄;

如果((typeof,sayname)!=函数{){

(student.prototype.sayname =功能){

警报(这个名字);

}

}

}

新的人(明)

/ /警报(斯图是学生);

stu.sayname();

无功stunew =新的人(红

/ /警报(stunew是学生);

stunew.sayname();



当多个学生创建对象的方法,sayname只初始化一次。

最后,有一个非常有用的方法来创建对象,也就是说,一个稳定的构造函数。

稳定构造函数模式:

在这个模式中,这个和新的都是禁止的,所有的对象都没有公共属性。只能读取变量的值,但是不能修改它。

复制代码代码如下所示:

构造函数/安全模式

函数学生(姓名,年龄){

var o =新的对象();

o.sayname =函数(){

警报(名称);

}

回来啊;

}

变量=学生()

stu.sayname();



上面总结了几种常见的用Javascript创建自定义对象的方法,这是非常全面的。如果您有更好的,请与我联系,这篇文章将继续更新。