在JavaScript对象构造函数中不使用此选项是否有缺点?

在JavaScript对象构造函数中不使用此选项是否有缺点?,javascript,constructor,Javascript,Constructor,比较这两个构造函数: A B 除了简洁之外,使用B是否还有其他缺点 编辑:我之所以问这个问题,是因为我可以通过比较和对比两者来学习,而不是因为我想使用B。一个相当重要的区别是,除非你采取措施来解决这个问题,B中返回的对象将没有Person原型。首先,您浪费了运行时系统已经为您构建的对象。是的,B不是构造函数,因为它在输出实例中不包含原型成员。使用B,您还可以执行var Person={name:name,age:age};因为这基本上就是你最终要做的事情,当你忘记使用new调用构造函数时,B会更

比较这两个构造函数:

A

B

除了简洁之外,使用B是否还有其他缺点


编辑:我之所以问这个问题,是因为我可以通过比较和对比两者来学习,而不是因为我想使用B。一个相当重要的区别是,除非你采取措施来解决这个问题,B中返回的对象将没有Person原型。

首先,您浪费了运行时系统已经为您构建的对象。是的,B不是构造函数,因为它在输出实例中不包含原型成员。使用B,您还可以执行var Person={name:name,age:age};因为这基本上就是你最终要做的事情,当你忘记使用new调用构造函数时,B会更安全,因为它是一个构造函数;他不是一个构造器。出于好奇,这有什么好处?
var Person = function(name, age) {
  this.name = name;
  this.age = age;
}
var Person = function(name, age) {
  var o = new Object();
  o.name = name;
  o.age = age;
  return o;
}