使用类而不是使用将对象作为返回值抛出的函数有什么好处?

时间:2012-09-28 04:01:43

标签: javascript class function object return

我是一名新手程序员,但我已经看到了一些可以做得更好或至少有所不同的事情。例如,类可用于创建新对象,如下所示:

var newObject = new className(params);

但这是否真的有必要,因为函数可以返回一个对象?我的意思是,使用以下代码,你也可以摆脱 new 关键字:

var newFruit = function (confobj) {
  var instance = {};

  //Common to all fruits
  instance.edible = true;

  //Custom settings
  instance.color = confObj.color;
  instance.shape = confObj.shape;
  instance.sweetness = confObj.sweetness;
  instance.sweet = (instance.sweetness > 0);

  return instance;
};

var banana = newFruit({
  color: 'yellow',
  shape: 'long',
  sweetness: 8
});

那么,使用需要 new 关键字的JS类而不是使用示例中提供的代码的优势是什么呢?

2 个答案:

答案 0 :(得分:2)

javascript中没有类。

构造函数(即设计为使用new运算符调用的函数)可以方便地使用对象的多个实例。使用继承共享方法而不是向每个对象添加重复方法有效率和维护优势。另一种方法是使用ES5 Object.create,它或多或少与new完全相同。

如果只需要一个对象的实例,则不需要构造函数。闭包可用于“私有”变量和方法。

使用适合您应用的任何策略,大型项目通常使用上述的混合。没有一个“最佳”解决方案。

答案 1 :(得分:0)

一些优秀的程序员喜欢单向,有些人喜欢另一种方式。

我喜欢使用带有new关键字的类,因为我已经习惯了,但请看一下Raphael lib创建者的这篇文章:http://dmitry.baranovskiy.com/post/something-new

让我思考......