isPrototypeOf在Javascript中

Shi*_*han 8 javascript prototype

我是JavaScript的初学者,也是我在JavaScript中使用Prototypes的途中.
根据这里的文章

创建原型
创建对象原型的标准方法是使用对象构造函数:

function person(first, last, age, eyecolor) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eyecolor;
}
Run Code Online (Sandbox Code Playgroud)

使用构造函数,您可以使用new关键字从同一原型创建新对象:

var myFather = new person("John", "Doe", 50, "blue");
var myMother = new person("Sally", "Rally", 48, "green");
Run Code Online (Sandbox Code Playgroud)

构造函数是person对象的原型.
我发现自己对上面的粗线感到困惑,我认为这是绝对错误的.

原因:

alert(person.isPrototypeOf(myFather));  // false
Run Code Online (Sandbox Code Playgroud)

我是否正确地这样说,因为我相信这一行:

'prototype'属性指向将在使用'new'时将被指定为使用该函数创建的实例原型的对象.

Ale*_*ara 9

我同意术语不正确.

构造函数有一个prototype属性,用于定义原型链中的属性和方法; 但它本身不是一个对象的原型,它是构造函数.

isPrototypeOf 不是在构造函数本身上调用,而是在构造函数的prototype属性上调用.

alert(person.prototype.isPrototypeOf(myFather)); // true
Run Code Online (Sandbox Code Playgroud)

myFather将是一个,您可以使用以下行测试它.instanceof person

alert(myFather instanceof person); // true
Run Code Online (Sandbox Code Playgroud)

  • 加一,isPrototypeOf不是在构造函数本身上调用,而是在构造函数的prototype属性上调用.你添加了一个很好的帮助我. (2认同)