gpt4 book ai didi

javascript - 如何识别原型(prototype)类型?

转载 作者:行者123 更新时间:2023-11-28 13:46:10 26 4
gpt4 key购买 nike

我有 2 个类,基础类和子类:

// base class
function circle(radius){
this.radius = radius;
return true;}

// child class
function pizza(flavour, radius){
this.radius = radius;
this.flavour = flavour;
return true;}

// Inheritance
pizza.prototype = new circle();

现在我正在创建一个披萨实例:

var myPizza = new pizza("Onion", 5);

我现在如何确定此变量是 circle 还是 pizza

我知道我可以添加一个函数,该函数将返回名称或保留具有类型名称的属性,但我想知道是否有另一种方法而不更改我的任何类。

谢谢!

最佳答案

通过将pizza类的原型(prototype)设置为circle类的实例,pizza的任何实例都将自动继承自。因此,instanceof 运算符将检查实例的构造函数:

(new pizza) instanceof pizza; // true
(new circle) instanceof circle; // true

并且还将沿着原型(prototype)链向上检查该实例继承自的任何其他构造函数:

(new pizza) instanceof circle; // true
(new pizza) instanceof Object; // true

因为 circle 不是从 pizza 继承的,所以您可以检查某个东西是 circle 而不是 pizza 与:

(new circle) instanceof pizza; // false

关于javascript - 如何识别原型(prototype)类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14253058/

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