首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript: toString

JavaScript: toString
EN

Stack Overflow用户
提问于 2010-09-08 23:44:15
回答 1查看 608关注 0票数 3

为什么是Object.prototype.toString === toString?如果我把它放在全局作用域中:

代码语言:javascript
复制
var toStringValue = toString.call("foobaz");

我希望toStringValuewindow.toString的值,因为window是默认作用域,对吧?为什么toString本身解析为Object.prototype.toString而不是window.toString

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-09-08 23:48:54

您将获得的结果将取决于主机环境。如果我运行以下命令:

代码语言:javascript
复制
alert(toString === window.toString);
alert(toString === Object.prototype.toString);​

在...on Chrome上,我得到的分别是truefalse;在火狐上,我得到的是falsefalse。IE给了truefalse ,但见下文。

浏览器上的窗口对象有点棘手,因为它是宿主对象,而且宿主对象可以做一些奇怪的事情。:-)举个例子,你的toString.call("foobaz")在IE上会失败,因为windowtoString不是一个真正的JavaScript函数,没有call或者apply。(我并不是说这样做是对的,你明白……)

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3669466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档