gpt4 book ai didi

javascript - 使用 switch 语句来识别对象实例的类型 - 不起作用

转载 作者:行者123 更新时间:2023-11-28 18:27:34 24 4
gpt4 key购买 nike

我试图关注this previous question .

var Animal = function(){}

var Dog = function(){}
Dog.prototype = Object.create(Animal.prototype);

var dog = new Dog();

switch(dog.constructor){
case Dog:
console.log("Good Dog")
break;
default:
console.log("Bad Dog");
}

它记录“Bad Dog”。

我做错了什么?

最佳答案

由于原型(prototype)继承,构造函数引用被覆盖。检查以下代码片段中的日志。

var Animal = function() {}
Animal.prototype.disp = function () {
return 'I am an Animal';
}
var Dog = function() {}
Dog.prototype = Object.create(Animal.prototype);

var someOtherAnimal = new Dog();
// On inheriting the prototypal chain, the constructor is overridden.
console.log(someOtherAnimal.constructor === Animal);
// over riding the constructor
Dog.prototype.constructor = Dog;

var someAnimal = new Dog();
console.log(someAnimal.constructor === Dog);

switch (someAnimal.constructor) {
case Dog:
console.log("Good Dog")
break;
default:
console.log("Bad Dog");
}
// access the animal prototpe.
console.log(someAnimal.disp());

关于javascript - 使用 switch 语句来识别对象实例的类型 - 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38811557/

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