问题标签 [object-create]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
197 浏览

javascript - Object.create 改变 Chrome 中 proto 对象的控制台输出?

今天我在玩耍时注意到 Chrome 控制台中的一些对象显示为Object而不是构造函数名称。

这很奇怪,所以我将其归结为以下代码:

在上面的代码b中,不是通过 a 创建的Object.create,但是在记录时它会显示 Object. 我那里没有错字,并且错误地询问了c。当我什至还没有碰过那个对象时,b 的日志就被改变了。创建另一个实例c,不应该改变b

这一定是 Chrome 错误吧?有没有办法让 Chrome 在Baz这里正确报告?

这对于调试目的很重要。

在此处输入图像描述

更新错误提交:https ://code.google.com/p/chromium/issues/detail?id=478522

0 投票
0 回答
898 浏览

java - Spring getBean 很慢

下面的代码用于创建许多 bean 并将它们添加到列表中以供进一步使用

manyLongs 是一个包含大约 350000 个项目的 ArrayList。也许更多。我注意到这段代码运行大约需要 2 分钟。我尝试创建并添加到任务的 Bean 是原型。

我可以理解创建 350K 新对象可能需要时间,但对于两个字段的轻量级对象来说,2 分钟似乎有点太多了。有没有办法在不完全改变设计的情况下有效地创建这些弹簧对象?

更新

路易吉·门多萨是对的。我在构造函数中有两点对对象的创建产生了影响。首先是我是一个延迟加载调用,但最糟糕的是构造函数中的 JSON 对象的反序列化,尽管它不需要存在。

只是为了测试,我检查了在没有 Spring 的情况下创建 bean,虽然它明显更快,但它只比 spring 快几秒钟。

0 投票
2 回答
69 浏览

javascript - 在 javascript 中使用 Object.create(someprototype) 创建的对象的构造函数

使用 Object.create(someObj.prototype) 创建的对象的构造函数为 someObj,那么当我尝试访问 someObj 的属性时,怎么会出现未定义?

0 投票
4 回答
3956 浏览

javascript - 为什么 Object.create 比构造函数慢得多?

背景

在我维护的一个项目中,我们广泛使用 null 原型对象作为(仅限字符串键)Maps 的穷人替代品,许多旧的 ES6 之前的浏览器本身并不支持这些对象。

基本上,要动态创建一个空原型对象,可以使用:

这保证了新对象没有继承的属性,例如“toString”、“constructor”、“__proto__”,这些属性对于这个特定的用例来说是不可取的。

由于这种模式在代码中多次出现,我们想出了编写一个构造函数的想法,该构造函数将创建其原型具有空原型且没有自己的属性的对象。

然后创建一个没有自己或继承属性的对象,可以使用:

问题

为了提高性能,我编写了一个测试,发现Object.create在所有浏览器中,本机方法的执行速度出乎意料地比涉及具有临时原型的额外构造函数的方法慢得多:http: //jsperf.com/blank-object -创造

我天真地期望后一种方法会更慢,因为它涉及调用用户定义的构造函数,这在前一种情况下不会发生。

造成这种性能差异的原因可能是什么?

0 投票
4 回答
15058 浏览

javascript - 使用 Object.create() 和 Object.assign() 创建对象有什么区别?

考虑以下代码:

由于每个对象都是以不同的方式创建的,obj1两者之间有什么区别吗?obj2

0 投票
1 回答
49 浏览

javascript - Object Literal方法中的Javascript直接调用方法和使用Object.create之间的区别?

假设这是我的对象

我想调用greetFullName方法,我可以使用两种方法调用它。

  1. var personFullName = personObjLit.greetFullName();
  2. var personObjLitObject = Object.create(personObjLit);

我想知道这两者有什么区别。我的意思是它只是不同的方法,或者它会影响记忆或其他东西。

0 投票
4 回答
120 浏览

java - Java对象创建区别

我是 Java 中 OOP 概念的新手。这两个事件有什么区别?

1.

2.

非常感谢一个很好的解释。谢谢

0 投票
1 回答
76 浏览

javascript - 为什么原型链的执行方式不同?

我正在尝试更多地了解 Javascript 并深入了解原型链。当我遇到这个问题时,我想为 HTMLElement 创建一个小扩展。

我理解的方式Object.create是传递给它的对象用于为新对象创建上下文,并且新创建的对象的原型链中的第一个链接将指向传递给Object.create方法的对象。既然如此,bar下面方法中使用的扩展方法对我来说似乎是正确的方法,因为这个新创建的对象将被赋予其 HTMLElement 作为其上下文。

但是发生的情况是,该方法通过将新的子元素foo附加到 来正常工作,但事实并非如此。div<span id="test"></span>bar

当我在浏览器中打开开发人员工具并尝试跟踪appendChild调用它们的两个对象的原型链时,它们看起来几乎相同:

我用这个例子创建了一个jsFiddle 。

有人可以向我解释为什么bar不工作吗?bar实际上是更正确的方法吗?如果是这样,它应该如何设置才能正常工作?

提前感谢您的帮助!!!

0 投票
2 回答
919 浏览

javascript - 如何防止更改原型?

在这段代码中,原型仍然可以改变。

如何防止更改原型?

0 投票
1 回答
28 浏览

javascript - 使用 Object.create() 时,如何使用其他对象键引用对象键

我正在尝试通过制作一个人为的计算器模块来学习 Object.create。我试过bind我试过删除this,但没有结果。

问题:

如何像使用类一样在元素的另一个属性中引用对象的属性。或者我的例子不是一个很好的模式?如果是这样,我应该如何构建我的计算器对象以提供事件监听器creation

计算器.js

HTML: