有人知道如何獲取原型屬性下的typeof對象嗎?即我有下面的代碼:獲取原型函數下的對象類型
Object.prototype.someproperty = function(){
...do something...
console.log(typeof this);
..more...
}
在我的代碼,這導致送花兒給人的「功能」,因爲對象的構造函數的函數。當我這樣打電話
Array.someproperty(); //In this i want get "array"
//or
String.someproperty(); //In this i want get "string"
我想獲得「數組」而不是「功能」...有人知道如何?
typeof []將始終返回「object」,因爲所有數組都是對象(在JavaScript中)。檢查數組的更好方法是 - 'Object.prototype.toString.call(yourVariableHere)==='[object Array]'' –
我已經用這個簡單的「名稱」解決了我的問題。 Object.prototype.myfn = function(){ \t return this.name; } String.myfn(); //返回「String」 Array.myfn(); //返回「數組」 Function.myfn(); //返回「函數」 Object.myfn(); //返回「Object」 Number.myfn(); //返回「數字」 我通過爭議改變了「myfn」的「someproperty」。謝謝你們。 – iLevi
呃,再一次,你只是將'myfn'應用到函數中!如果這是你的意圖,你應該擴展'Function.prototype'而不是'Object.prototype'。這是非常真實的原因。另外,如果您需要全面的瀏覽器支持,函數上的'.name'是非標準屬性,並且在某些瀏覽器中不起作用。 – user113716