439得票11回答
理解Object.create()和new SomeFunction()的区别

最近我偶然发现了JavaScript中的Object.create()方法,并试图推断它与使用new SomeFunction()创建对象实例的区别以及何时该使用其中之一。 考虑下面的示例: var test = { val: 1, func: function() { ...

391得票15回答
使用"Object.create"代替"new"

Javascript 1.9.3 / ECMAScript 5 引入了 Object.create,Douglas Crockford 等人长期以来一直在 倡导。如何使用 Object.create 替换下面代码中的 new?var UserA = function(nameParam) { ...

125得票5回答
JavaScript继承:Object.create与new的区别

在JavaScript中,这两个示例有什么区别: 前提:function SomeBaseClass(){ } SomeBaseClass.prototype = { doThis : function(){ }, doThat : function(){ ...

36得票5回答
使用Object.create()和Object.assign()创建对象的区别是什么?

考虑以下代码:var obj1 = Object.create({}, {myProp: {value: 1}}); var obj2 = Object.assign({}, {myProp: 1}); 由于每个对象创建的方式不同,obj1和obj2之间有区别吗?

25得票2回答
Object.create和原型链的Instanceof等效实现

考虑下面这个原型链的对象:var A = {}; var B = Object.create(A); var C = Object.create(B); 如何在运行时检查C是否在其原型链中具有A?instanceof不适用,因为它设计用于处理构造函数,而我此处并未使用构造函数。

19得票1回答
JavaScript中的object.create如何工作?

告诉我是否正确: 原型是一个普通对象。当一个对象继承自原型时,它不仅仅只是复制原型的属性,对象存储了对原型的引用。 在 Firefox 中,我可以这样做:var food = {fruit:"apple"}; var more_food = {vegetable:"celery"}; foo...

17得票4回答
为什么Object.create比构造函数慢这么多?

背景 我在维护的一个项目中,我们广泛地使用了空原型对象作为贫民版(仅支持字符串键)Map的替代品,因为许多老旧的、ES6之前的浏览器不支持它们。 基本上,要动态创建一个空原型对象,可以使用以下代码:var foo = Object.create(null); 这确保新对象没有继承的属性,比...

15得票7回答
JavaScript中使用Object.create()实现继承?

如何使用Object.create()进行继承?我尝试了以下代码,但都没有成功:var B = function() {}; var A = function() {}; A = Object.create(B); A.prototype.C = function() {}; 而且var B ...

13得票3回答
JavaScript Object.create -- 继承嵌套属性

我发现了一个关于 Douglas Crockford 的 Object.create 方法的奇怪现象,希望有人能够解释一下: 如果我使用对象文本表示法创建一个名为“person”的对象,然后使用 Object.create 创建一个新对象 - 名为“anotherPerson”的对象,它继承...

11得票4回答
在JavaScript中,使用Object.create()或new是否有任何理由?

我一直在JavaScript中使用new关键字。最近我了解到了Object.create,想知道是否应该使用它。然而我不太明白的是,因为我经常需要运行构造代码,所以我不明白Object.create如何工作,因为它不会触发任何函数运行。 请问,在什么情况下应该使用Object.create代...