(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的情况是你有一个工厂函数,需要生成多个类似的对象
忽然笑
TA贡献1806条经验 获得超5个赞
js中字面量的形式创建对象更为常见,看上去更加清晰,并且性能更好,但是相对而言,其一般适用于较简单场景,因为不能满足多种复杂情况下的变化需求。
构造函数可以接受不同的参数以创建相同原型不同属性的对象,可以将相似类型的生成代码合并起来,但是这个也是有好有坏,随着应用场景的变化可能反而极大的增加了理解难度和代码管理难度。
添加回答
举报
0/150
提交
取消
