高级教程上提到创建对象的方法有字面量法、工厂模式、构造函数模式、原型模式、混合模式等等。在工厂模式里面有个例子,
function creatPerson(name){
var obj=new Object();
obj.name=name;
return obj;
}
var person=creatPerson(“hello”);
这里在函数内部已经使用了构造函数模式了啊,那干嘛还有工厂模式的出现了?这几种创建对象的方法是一步一步发展而来的吗?函数的prototype属性是为了原型模式才有的,还是自javascript诞生之初就已经存在了,有大牛能够讲一下这个历史吗?
为了避免太复杂,你这么理解吧:
构造函数模式:
var person = new Person('hello')
工厂模式:
var person = creatPerson('hello')
至于 prototype 的问题,参考我另一个回答吧:javascript是面向对象的,怎么体现javascript的继承关系?