Javascript原型实例化与伪经典实例化
我通读了其他几篇关于原型与伪经典实例化的文章,仍然有一些问题。我已经包括了下面的代码用于说明 问题是:Javascript原型实例化与伪经典实例化,javascript,instantiation,prototypal,Javascript,Instantiation,Prototypal,我通读了其他几篇关于原型与伪经典实例化的文章,仍然有一些问题。我已经包括了下面的代码用于说明 问题是: 人实际上和人一样吗 约翰和爱丽丝本质上是一样的吗 一种方法与另一种方法相比会产生什么副作用 是否有任何重要的性能问题需要我注意 var Person = function() { hopes: function(){}, dreams: function(){} }; var John = Object.create(Person); // not supported in older
var Person = function() {
hopes: function(){},
dreams: function(){}
};
var John = Object.create(Person); // not supported in older browsers
--
在第一个示例中,您的语法有点不正确,但是是的,这些语法将导致类似的对象。在第一个示例中,它应该是:
var Person = {
hopes: function(){},
dreams: function(){}
};
但也有一些微妙的区别。使用new
关键字会将对象添加到原型链中,例如Alice
现在将使用Human
的原型链Object.create
将对象的原型设置为参数,例如Person
是John
的原型。这些通常是相似的,除非您执行了Object.create(null)
,在这种情况下,您不会像执行new Object()一样获得基本对象原型
您可以在这里运行性能测试
var Person = {
hopes: function(){},
dreams: function(){}
};