为了账号安全,请及时绑定邮箱和手机立即绑定

javascript创建对象{}和new那种方式好?

javascript创建对象{}和new那种方式好?

GCT1015 2019-02-28 21:23:57
(function() {// 第一种 {}var $路人女主养成方法 = {  _信息方法 : function(_名字, _年龄, _职业) {    var $路人女主 = Object.create(this);    $路人女主._名字 = _名字;    $路人女主._年龄 = _年龄;    $路人女主._职业 = _职业;    return $路人女主;  },  _养成方法 : function() {    var $女主 = this;    alert('第一种: \n名字: ' + $女主._名字 + '\n年龄: ' + $女主._年龄 + '\n职业: ' + $女主._职业);  }},$女主数据 = [  $路人女主养成方法._信息方法('霞之丘诗羽', 18, '学生 & 小说家'),  $路人女主养成方法._信息方法('加藤惠', 17, '学生'),  $路人女主养成方法._信息方法('泽村·史宾瑟·英梨梨', 16, '学生&漫画家')];$女主数据.forEach(function($数据) {  $数据._养成方法();});})();(function() {// 第二种 newfunction $路人女主信息(_名字, _年龄, _职业) {  var $路人女主 = this;  $路人女主._名字 = _名字;  $路人女主._年龄 = _年龄;  $路人女主._职业 = _职业;}$路人女主信息.prototype._养成方法 = function() { var $女主 = this;    alert('第二种:\n名字: ' + $女主._名字 + '\n年龄: ' + $女主._年龄 + '\n职业: ' + $女主._职业); };var $女主数据 = [new $路人女主信息('霞之丘诗羽', 18, '学生 & 小说家'),new $路人女主信息('加藤惠', 17, '学生'),new $路人女主信息('泽村·史宾瑟·英梨梨', 18, '学生&漫画家')];$女主数据.forEach(function($数据) {  $数据._养成方法();});})();一种是 创建对象{}方式一种是 原型new 方式这两种写法哪种写法好? 还有性能方面和复用性?(变量名=>纯属娱乐)
查看完整描述

3 回答

?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

一般情况如果这个对象不需要复用,有多个实例,那推荐用{}这种字面量的方式,可读性更好
要用new的情况是你有一个工厂函数,需要生成多个类似的对象

查看完整回答
反对 回复 2019-03-04
?
30秒到达战场

TA贡献1828条经验 获得超6个赞

字面量的写法更符合js的风格习惯。性能是字面量的方式高的(高性能js这书好像看到过),复用性方面你这里感觉差别不大。


查看完整回答
反对 回复 2019-03-04
?
忽然笑

TA贡献1806条经验 获得超5个赞

js中字面量的形式创建对象更为常见,看上去更加清晰,并且性能更好,但是相对而言,其一般适用于较简单场景,因为不能满足多种复杂情况下的变化需求。
构造函数可以接受不同的参数以创建相同原型不同属性的对象,可以将相似类型的生成代码合并起来,但是这个也是有好有坏,随着应用场景的变化可能反而极大的增加了理解难度和代码管理难度。

查看完整回答
反对 回复 2019-03-04
  • 3 回答
  • 0 关注
  • 493 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号