gpt4 book ai didi

javascript - JavaScript 中从 Object 继承属性

转载 作者:行者123 更新时间:2023-12-02 17:22:59 24 4
gpt4 key购买 nike

任何 JavaScript 对象都会从 Object 继承其属性(除非您执行类似 Object.create(null) 的操作)。那么为什么以下不可能呢?

a={x:1,y:2}
Object {x: 1, y: 2}
Object.prototype.isPrototypeOf(a)
true
a.toString()
"[object Object]"//YES, BECAUSE a INHERITS OBJECT toString() PROPERTY
a.keys()
TypeError: undefined is not a function// BUT WHY NOT keys()
Object.keys(a)
["x", "y"]// WHILE THE OBJECT HAS keys() METHOD FROM ECMA5 SPECIFICATION

根据我当时的理解,它不起作用的唯一原因应该是因为 keys() 方法是不可继承的,但我从未见过如何在 JavaScript 中使某些属性不可继承。

我是否遗漏了有关原型(prototype)链如何工作的信息?

最佳答案

a.toString 继承自 Object.prototype.toString,而不是 Object.toStringObject.keys 不在 Object.prototype 上。

您可以添加它:

Object.prototype.keys = function keys() {
return Object.keys(this);
};

(当然不要。)

关于javascript - JavaScript 中从 Object 继承属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23746244/

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