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

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

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

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

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

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

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

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

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

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

7得票2回答
使用Object.create时传递参数与使用new时的区别

这个问题不是使用 "Object.create" 代替 "new"的重复。相关帖子并未专注于在使用 Object.create 时正确传递参数。 我想知道如何使用Object.create来初始化对象,而不是使用new。以下是我的代码: function Human(eyes) { ...

10得票1回答
使用Object.create的优势

与这个问题类似,但又有所不同。下面的代码来自于《JavaScript权威指南》。作者基本上定义了一个继承方法,如果Object.create存在,则使用它,否则使用常规的JavaScript构造函数和原型交换来实现继承。 我的问题是,由于Object.create在许多常见浏览器(如IE)中...

9得票2回答
Object.create与直接原型继承的区别

我一直在尝试使用 EcmaScript 5 规范中的 Object.create,并尝试创建一种多重继承类型结构。 假设我有几个函数:a、b 和 c。只需处理原型,就可以这样做: function a () {} a.prototype = { fnA = function () ...

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

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

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

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