簡體   English   中英

如何識別原型類型?

[英]How can I identify the prototype typeof?

我有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

我知道我可以添加一個函數,該函數將返回名稱或類型名稱為hold的屬性,但我想知道是否還有另一種方法可以更改我的任何類。

謝謝!

通過將pizza類的原型設置為circle類的實例,任何pizza實例將自動從circle繼承。 結果, instanceof運算符將檢查instanceof的構造函數:

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

並且還將沿着原型鏈走,以檢查實例也從其繼承的任何其他構造函數:

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

因為circle不是從pizza繼承的,所以您可以通過以下方式檢查是否是circle而不是pizza

(new circle) instanceof pizza; // false

你可以使用instanceof

var p = new pizza();
console.log(p instanceof pizza) //true
console.log(p instanceof circle) //true also

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM