gpt4 book ai didi

javascript - 内置 JavaScript 函数 toString 的文档在哪里?

转载 作者:行者123 更新时间:2023-11-30 23:46:36 24 4
gpt4 key购买 nike

我查看了 jQuery 代码,发现 isArray 是使用内置函数 toString 实现的。我在 MDC 上找不到此功能的文档。该文档存在吗?这个函数有什么作用?

isArray: function( obj ) {
return toString.call(obj) === "[object Array]";
},

最佳答案

I was looking through the jQuery code and found that isArray is implemented using the built-in function toString

这不是内置的。参见第 68 行:

toString = Object.prototype.toString,

jQuery 正在获取 toString 的副本方法Object在其自己的名为 toString 的变量下。 Object#toString方法记录在 MDC here (以及 ECMAScript 本身)。然后 jQuery 使用 call 调用该方法的变量副本并将对象传递为 this 。这种迂回的调用方法是为了让你无法创建一个覆盖 toString() 的对象。并可能返回字符串 '[object Array]' .

(特别是,字符串 '[object Array]' 本身将 [object Array] 作为其 toString() 值,因此如果直接调用 obj.toString() ,则会被错误地检测为数组。调用 ObjecttoString() 的基本实现避免了这种情况。)

测试 toString()表示形式非常丑陋(对于宿主对象来说仍然不是 100%),但更直接 obj instanceof Array不适用于跨窗口脚本编写,因为 Array每个窗口/框架中都有不同的构造函数。

ECMAScript第五版增加了函数Array.isArray(obj)以避免这种不愉快的事情发生。然而,目前浏览器支持很差。

关于javascript - 内置 JavaScript 函数 toString 的文档在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2829460/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com