Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript IE8中未定义window.toString.call_Javascript_Jquery_Exception_Internet Explorer 8_Tostring - Fatal编程技术网

Javascript IE8中未定义window.toString.call

Javascript IE8中未定义window.toString.call,javascript,jquery,exception,internet-explorer-8,tostring,Javascript,Jquery,Exception,Internet Explorer 8,Tostring,运行时: window.toString.call("") 在FF/CH中一切正常,但在IE8中会出现脚本错误。进一步调查后发现,window.toString.call在IE8中没有定义 您也可以运行此选项: window.toString instanceof Function; // false alert(window.toString); // function toString() { // [native code] // } 为什么会这样以及如何解决它?我开始想知道j

运行时:

window.toString.call("")
在FF/CH中一切正常,但在IE8中会出现脚本错误。进一步调查后发现,
window.toString.call
在IE8中没有定义

您也可以运行此选项:

window.toString instanceof Function;
// false

alert(window.toString);
// function toString() {
//    [native code]
// }

为什么会这样以及如何解决它?我开始想知道jQuery最初是如何工作的?

窗口是一个宿主对象,并且不要求宿主对象派生自本机
对象
对象。在IE中(可能在某些其他浏览器中),主机对象不支持,因此它们不支持任何本机方法或属性(尽管它们可能具有与脚本可以访问的本机方法或属性同名的方法或属性)


如果您只想获得语言实现的默认本机
toString
方法,那么您应该使用
Object.prototype.toString.call(“”

NickFitz是正确的,您正在查找的宿主对象上的toString方法是完全正确的,如果您这样做了

警报(窗口)

您将获得文本[对象]

示例中使用的javascript方法toString()所能实现的就是从字符串生成字符串,因此正确的方法是:

var a =new String ("");
或者干脆

var b = "";
或者如果你真的想变得愚蠢

var b = "".toString();

顺便说一句,当我在Firefox上调用
window.toString.call(“”
时,它返回
null
。此外,
Object.prototype.toString.call(“”
返回字符串
[Object string]
,这与预期非常接近。这可能有助于解释您实际想要做的事情。不要将其他答案称为“高于”或“低于”,因为答案的位置取决于当时选择的排序和计票情况。试着提供答案的永久性链接。我认为你甚至可以只使用锚而不是绝对的URL。例如,[1]:#1669142