1.工厂模式
function createPerson(name){ //1、原料 var obj=new Object(); //2、加工 obj.name=name; obj.showName=function(){ alert(this.name); } //3、出场 return obj; } var p1=createPerson('小米'); p1.showName();
优点:解决了创建相似对象的问题
缺点:并不能zhi知道一个对象的lei'类型
2.构造函数
function CreatePerson(name){ this.name=name; this.showName=function(){ alert(this.name); } } var p1=new CreatePerson('小米');
优点:可以将一些实例表示为一种特定的类型
缺点:方法会在每个实例上都重新创建一遍遍
3.原型
function Person(){} Person.prototype.name="小米"; Person.prototype.showName=function(){ alert(this.name); } var p1=new Person(); p1.showName();
优点:属性和方法定义在原型上 ,故每个实例可以共享属性和方法
缺点:实例的属性不能私有化
4.混合式(构造函数+原型)
function CreatePerson(name){ this.name=name; } Create.prototype.showName=function(){ alert(this.name); } var p1=new CreatePerson('小米'); p1.showName(); var p2=new CreatePerson('小米'); p2.showName(); alert(p1.showName==p2.showName);//true;原因:都是在原型下面,在内存中只存在一份,地址相同
通过构造函数来定义属性,原型来定义方法和共享的属性。
5.字面量
person={ name:"小米", age:23 };
Copyright © 2019- ovod.cn 版权所有 湘ICP备2023023988号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务