[英]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.