JS各种检测(+)

正好看到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()

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容