javascript创建对象的10种模式

第1种:对象字面量

//对象字面量(速度快,推荐使用)

var animal = {property: "都要呼吸", getProperty: function(){return this.property;}};
var person = {feature: "直立行走", getFeature: function(){return this.feature;}};

第2种:Object构造函数

var animal = new Object();
animal.property="都要呼吸";
animal.getProperty=function(){return this.property;}
var person = new Object();
person.feature="直立行走";
person.getFeature = function(){return this.feature;}

第3种:工厂模式

function createAnimal(){var animal=new Object();animal.property="都要呼吸";animal.getProperty=function(){return this.property;} return animal;}
function createPerson(){var person=new Object();person.feature="直立行走";person.getFeature=function(){return this.feature;} return person;}
var animal = createAnimal();
var person = createPerson();

第4种:构造函数模式

function Animal(){this.property="都要呼吸";this.getProperty=function(){return this.property;};}
function Person(){this.feature="直立行走";this.getFeature=function(){return this.feature;};}
var animal = new Animal();
var person = new Person();

第5种:原型模式

function Animal(){}
Animal.prototype.property="都要呼吸";
Animal.prototype.getProperty=function(){return this.property;}
function Person(){}
Person.prototype.feature="直立行走";
Person.prototype.getFeature=function(){return this.feature;}
var animal=new Animal();
var person=new Person();

第6种:组合使用构造函数模式和原型模式

function Animal(){this.property="都要呼吸";}
Animal.prototype.getProperty=function(){return this.property;}
function Person(){this.feature="直立行走";}
Person.prototype.getFeature=function(){return this.feature;}
var animal=new Animal();
var person=new Person();

第7种:动态原型模式

function Animal(){
this.property="都要呼吸";
if(typeof this.getProperty!="function"){
Animal.prototype.getProperty=function(){return this.property;}
}}
function Person(){
this.feature="直立行走";
if(typeof this.getFeature!="function"){
Person.prototype.getFeature=function(){return this.feature;}
}}
var animal=new Animal();
var person=new Person();

第8种:寄生构造函数模式

function Animal(){this.property="都要呼吸";this.getProperty=function(){return this.property;};}
function Person(){var animal=new Animal();animal.property="直立行走";return animal;}
var person=new Person();

第9种:稳妥构造函数模式

function Animal(){var animal=new Object();var property="都要呼吸";animal.getProperty=function(){return property;} return animal;}
function Person(){var person=new Object();var feature="直立行走";person.getFeature=function(){return feature;} return person;}
var animal=Animal();
var person=Person();

第10种:Object.create()

var person={feature: "直立行走", getFeature: function(){return this.feature;}}
var p1=Object.create(person);

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mannuandeyangguang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值