对于以下代码,我想知道为什么Object.getPrototypeOf(person)有效,但person.getPrototypeOf(person)不起作用?我认为规则是:如果对象没有这样的属性或方法,它会沿着原型链上去尝试获取它,然后调用它this(例如对象的上下文在Animal.getName.call(this)哪里)。那么在那种情况下,应该成为并且应该工作呢?thiswoofieperson.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,这是一个静态方法?