是否可以確定JavaScript對象的類型?確定JavaScript對象實例的類型
請參閱下面的背景下,例如:
var Cat = function() {this.numEyes=2;this.numLegs=4};
var c = new Cat();
我們如何確定C的類型。
我不是在尋找
(c instanceof Cat)
我本質上是如何會得到給定的C弦貓。
是否可以確定JavaScript對象的類型?確定JavaScript對象實例的類型
請參閱下面的背景下,例如:
var Cat = function() {this.numEyes=2;this.numLegs=4};
var c = new Cat();
我們如何確定C的類型。
我不是在尋找
(c instanceof Cat)
我本質上是如何會得到給定的C弦貓。
在original post formulation在修訂歷史仍清晰可見,Cat
未經var
定義,即:
Cat = function() {this.numEyes=2;this.numLegs=4};
在這種情況下,可以通過遍歷全局對象的屬性來確定構造函數的名稱(瀏覽器的window
S)。
Cat = function() {this.numEyes=2;this.numLegs=4};
var c = new Cat();
alert(typeNameOf(c));
function typeNameOf(c) {
for (name in window) {
if (window[name] == Object.getPrototypeOf(c).constructor) return name;
}
}
這應該提醒所有現代瀏覽器中的「貓」。
這就是我正在尋找的。謝謝。 – user3091138
@ user3091138不客氣 –
我想你是在構造函數名稱之後而不是類型。問題在於你定義它的方式不起作用。
var Cat = function(){};
var c = new Cat();
console.log(c.constructor.name); //""
如果你命名你的函數,你可以得到名稱
var Dog = function Dog(){};
var d = new Dog();
console.log(d.constructor.name); //Dog
作爲一個說明,這不適用於IE(no 'name'屬性支持)。 –
請。 var Cat =函數。 –
dup http://stackoverflow.com/questions/332422/how-do-i-get-the-name-of-an-objects-type-in-javascript – georg