Javascript创建对象的七种常用方式
js常用的几种创建对象的方式有:
1、{}
2、new Object()
3、使用字面量
4、工厂模式
5、构造函数模式(constructor)
6、原型模式(prototype)
7、构造函数+原型模式
还有一些不常用的方式,如动态原型,寄生构造函数,稳妥构造函数。
一、通过{}创建对象
<script>
'use strict'; //使用strict模式
/**
使用{}创建对象,等同于 new Object();
**/
var o = {
};
o.name = 'jack';
o.age = 20;
o.sayName = function(){
alert(this.name);
}
alert(o.name+'-'+o.age);
o.sayName();
</script>
如果对象不用重复创建,这种方式是比较方便的。
二、通过new Object()创建对象
<script>
'use strict';
// 使用 new Object() 创建对象
var o = new Object();
o.name = "zhangsna";
o.sayName = function(){
alert(this.name);
}
o.sayName();
alert('o instanceof Object>>>>>>>>>>>'+(o instanceof Object));//true
alert("typeof o >>>>> "+typeof o);//object
</script>
三、使用字面量创建对象
对象字面变量是对象定义的一种简写形式,举个例子:
var person = {name: ‘zhang’, age:20}, 这就是字面量形式,完全等价于var person = {}; person.name=‘zhang’; person.age=20;
小结:前面三种创建对象的方式存在2个问题:1.代码冗余; 2.对象中的方法不能共享,每个对象中的方法都是独立的。
四、使用工厂模式创建对象
这种方式是使用一个函数来创建对象,减少重复代码,解决了前面三种方式的代码冗余的问题,但是方法不能共享的问题还是存在。
<script>
'use strict';
// 使用工厂模式创建对象