JS各种检测(+)

2016-05-24  本文已影响10人  前端历险记

正好看到Object.prototype.toString(),通过解释发现不光是将现有对象内容转为字符串。

If this method is not overridden in a custom object, toString() returns "[object type]", where type is the object type.

大致理解是在没有被自定义默认的情况下,比如仅仅是通过new构造,会返回[object type]

var o = new Object();
o.toString(); // returns [object Object]

于是利用这个性质,被玩惨了:

var toString = Object.prototype.toString;

toString.call(new Date);    // [object Date]
toString.call(new String);  // [object String]
toString.call(Math);        // [object Math]

// Since JavaScript 1.8.5
toString.call(undefined);   // [object Undefined]
toString.call(null);        // [object Null]

参考链接
Object.prototype.toString()

上一篇下一篇

猜你喜欢

热点阅读