面向对象在javascript中的实践之多种方式创建对象

方式一:通过内置Object对象的方式创建 然后通过点语法,动态给对象创建属性,方法

 

var o1 = new Object();
o1.name = 'Tom';
o1.sing = function() {
  console.log('I am singing');
}

方式二:通过字面量json形式创建对象

 

 

var o2 = {
  "name":"jackson",
  "age":"10",
  "say":function(){
    console.log("say hi");
  };
};

方式三:通过构造函数创建

 

var o3 = function() {
  this.name = "Lucy",
  this.age = "10",
  this.say = function() {
    console.log("say hello");
  }
}

方式四:通过原型创建

 

var o4 = function() {}
o4.prototype = {
  "name":"Taylor",
  "age":10,
  "say":function(){
    console.log("say h1");
  }
}

方式五:通过原型和构造函数混合的形式创建(推荐使用这种,原因:尽量将方法定义为原型方法,原型方法避免了每次调用构造函数时对属性或方法的构造,节省空间,创建对象快)

 

var o5 = function() {
  this.name = 'James';
  this.age = 10;
}
o5.prototype = {
  "say":function() {
     console.log("say hi");
  }
}

方式六:拷贝模式创建对象

 

// 先要有一个拷贝模块 
function extend(target,source){
  for(var k in source){
    target[k] = source[k];
  }
  return target;
};
var o6 = {
  "name":"o6",
  "age":10
}
var o7 = {
  "say":function() {
    console.log('say hi');
  }
}
// o6拷贝o7的方法,然后构建成一个新的对象
var o8 = extend(o6,o7);
o8.say(); // say hi

方式七:通过第三方库来创建对象
有 base2.js  和 simplejavascriptinheritance.js 来实现, 网上有资料。

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Wang's Blog

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

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

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

打赏作者

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

抵扣说明:

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

余额充值