用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创建自定义对象的方法,这是非常全面的。如果您有更好的,请与我联系,这篇文章将继续更新。