gpt4 book ai didi

javascript - 为什么 jslint 更喜欢 {}.constructor(obj) 而不是 Object(obj)

转载 作者:数据小太阳 更新时间:2023-10-29 04:15:56 25 4
gpt4 key购买 nike

两者都将检测对象而不是基元。

这似乎是纯粹的句法差异。

// jslint prefers {}.constructor(obj) over Object(obj)
// called isObject by underscore
// will test only for objects that have writable keys
// for example string literals will not be detected
// but arrays will
var isWritable = function (obj) {
return {}.constructor(obj) === obj;
};

最佳答案

我不太确定,因为它不应该。如果您正在查看性能,那么这与您应该做的相反。

根据 this JSPerf test available which compares the speed of creating via new Object(), Object.create().new(), and Object.prototype.constructor() (与 Object.constructor() 相同); Object.constructor() 是迄今为止最慢​​的一个

Google 的 V8 引擎使用 new Object() 的速度要快很多,因为它对调用进行了如此大的优化,所以我真的不会担心它。

JSPerf 测试结果:

Operation per second comparison of Object creation functions The graph results of the speed of the different Object creation functions in multiple browsers

关于javascript - 为什么 jslint 更喜欢 {}.constructor(obj) 而不是 Object(obj),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24461186/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com