我已经阅读了很多教程和书籍。似乎有时作者本人拒绝解释两者之间的区别以及何时使用一种或一种比另一种更好的方法。 我仍然不了解它们在现代javascript中存在的基本区别。
工厂功能:
function greet(title, name) {
return sayHello = {
title,
name,
greetings: function() {
return 'hello ' + title + ' ' + name;
}
}
}
var person1 = greet('Mr', 'Alex');
person1.greetings();
构造函数:
function Greet(title, name) {
this.title = title,
this.name = name,
this.greetings = function() {
return 'hello ' + title + ' ' + name;
}
}
var person1 = new Greet('Mr', 'Alex');
person1.greetings();
那么除了在构造函数中使用'new'以外,还有什么区别? 有人认为工厂函数返回一个对象。构造函数也这样做。我仍然无法绕过这两个,然后又有一个叫做Class的东西。
因此,基本上唯一的区别是用于构造函数的'new'关键字?并且可以使用其中之一?据我了解,这就像在JS中执行相同操作的两种方式一样,对吗?