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