function SomeType() { return this; }
我怎麼能只用一個字符串來檢查對象的類型?
這一切都很好,如果我要構造參考,像這樣:
new SomeType() instanceof SomeType; // true
但如果我要檢查的類型爲字符串,有沒有簡單的方法來檢查。
new SomeType() instanceof 'SomeType'; // TypeError
我可以檢查構造函數將其轉換爲字符串後:
function SomeType() { return this; }
/function \bSomeType\b/.test(String(new SomeType().constructor)); // true
但它並不適用於所有情況:
var SomeType = function() { return this; }
/function \bSomeType\b/.test(String(new SomeType().constructor)); // false
對這個有什麼想法?試圖驗證一個字符串的類型/構造函數是否被認爲是反模式?
*「將嘗試驗證通過單向型/構造 - 字符串被認爲是反模式?「*是的。這也是不可能的,正如你已經看到'var SomeType = function(){...};';該構造函數沒有名稱,所以你不能檢查它。 – Ryan
@minitech我想的很多。我喜歡JavaScript的鬆散打字,直到它傷害了我。 – shennan