gpt4 book ai didi

javascript - 在 Javascript 中,为什么 Object.getPrototypeOf(person) 有效,而 person.getPrototypeOf(person) 无效?

转载 作者:行者123 更新时间:2023-11-28 16:11:56 29 4
gpt4 key购买 nike

对于下面的代码,我想知道为什么 Object.getPrototypeOf(person) 可以工作,但 person.getPrototypeOf(person) 不起作用?我认为规则是:如果对象没有这样的属性或方法,它会沿着原型(prototype)链向上尝试获取它,并在 this 上调用它(例如 Animal .getName.call(this) 其中 thiswoofie 对象的上下文)。那么在这种情况下, person.getPrototypeOf(person) 应该变成 Object.getPrototypeOf.call(person, person) 并且也应该工作?

function Person(name) {
this.name = name;
}

var person = new Person("Ang Lee")

console.log("the prototype of person is", Object.getPrototypeOf(person));
<小时/>

更新:对于说 getPrototypeOf 是静态方法的答案,这是否意味着:

function Person(name) {
this.name = name;
this.foo = function() { ... }
}

Person.bar = function() { ... }

那个foo是“在链中”,并且可以被任何继承的对象调用,而bar不是,并且bar就像getPrototypeOf,这是一个静态方法?

最佳答案

Object.getPrototypeOfObject 的属性类型本身,而不是 prototypeObject .

因为它实际上不在原型(prototype)链中,所以调用person.getProtoTypeOf()时不会找到它。 .

它更类似于其他 OO 语言中的“静态方法”。

关于javascript - 在 Javascript 中,为什么 Object.getPrototypeOf(person) 有效,而 person.getPrototypeOf(person) 无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12661777/

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