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

(function() {

// 第一种 {}

var $路人女主养成方法 = {

  _信息方法 : function(_名字, _年龄, _职业) {

    var $路人女主 = Object.create(this);

    $路人女主._名字 = _名字;

    $路人女主._年龄 = _年龄;

    $路人女主._职业 = _职业;

    return $路人女主;

  },

  _养成方法 : function() {

    var $女主 = this;

    alert('第一种: \n名字: ' + $女主._名字 + '\n年龄: ' + $女主._年龄 + '\n职业: ' + $女主._职业);

  }

},

$女主数据 = [

  $路人女主养成方法._信息方法('霞之丘诗羽', 18, '学生 & 小说家'),

  $路人女主养成方法._信息方法('加藤惠', 17, '学生'),

  $路人女主养成方法._信息方法('泽村·史宾瑟·英梨梨', 16, '学生&漫画家')

];

$女主数据.forEach(function($数据) {

  $数据._养成方法();

});

})();

(function() {

// 第二种 new

function $路人女主信息(_名字, _年龄, _职业) {

  var $路人女主 = this;

  $路人女主._名字 = _名字;

  $路人女主._年龄 = _年龄;

  $路人女主._职业 = _职业;

}

$路人女主信息.prototype._养成方法 = function() {

 var $女主 = this;

    alert('第二种:\n名字: ' + $女主._名字 + '\n年龄: ' + $女主._年龄 + '\n职业: ' + $女主._职业); 

};

var $女主数据 = [

new $路人女主信息('霞之丘诗羽', 18, '学生 & 小说家'),

new $路人女主信息('加藤惠', 17, '学生'),

new $路人女主信息('泽村·史宾瑟·英梨梨', 18, '学生&漫画家')

];

$女主数据.forEach(function($数据) {

  $数据._养成方法();

});

})();

一种是 创建对象{}方式

一种是 原型new 方式

这两种写法哪种写法好? 还有性能方面和复用性?(变量名=>纯属娱乐)


GCT1015
浏览 494回答 3
3回答

慕无忌1623718

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

30秒到达战场

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

忽然笑

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

相关分类

JavaScript