我的代碼後,很簡單功能成爲對象傳遞給另一個函數
var core ={
f: function(obj){
console.log(toString.call(obj));
}
}
需展現[object Function]
如果我通過其他功能像core.f(function(){})
,
和它相同的,如果我粘貼Chrome檢查器中的core.f
。
但如果core.f
通過腳本加載<script src>
我的代碼後,很簡單功能成爲對象傳遞給另一個函數
var core ={
f: function(obj){
console.log(toString.call(obj));
}
}
需展現[object Function]
如果我通過其他功能像core.f(function(){})
,
和它相同的,如果我粘貼Chrome檢查器中的core.f
。
但如果core.f
通過腳本加載<script src>
如果你在一個控制檯測試匿名功能變得[object Object]
,他們可能是在當地toString
解析爲Object.prototype.toString
。
如果您不想要完整的原型路徑,您應該自行創建本地參考。
在Chrome中,我表現出不同的toString
比window.toString
...
window.toString === toString; // false
的toString
參考併成功地解析爲Object.prototype.toString
...
Object.prototype.toString === toString; // true
..所以你可以看到他們已經創建了自己的本地參考使全球黯然失色
我正在使用'toString'來檢查對象的類型。我應該在'core.f'中使用'window.toString'嗎? – 2012-03-09 19:17:39
不,你應該使用控制檯使用的相同'toString'。這是'Object.prototype.toString'。它是一個通用的'toString()',並且是唯一一個返回內部* [[Class]] *屬性的屬性,可以深入瞭解對象的類型。 – 2012-03-09 19:18:51
謝謝Fixed.it – 2012-03-09 19:19:56
你是怎麼定義'toString'的?如果它是'Object.prototype.toString',那就沒關係。 – 2012-03-09 19:07:56