gpt4 book ai didi

JavaScript:为什么有些函数不是方法?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:00:08 25 4
gpt4 key购买 nike

有一次学生问我为什么要写:

  • parseInt(something)
  • something.toLowerCase()

也就是说,为什么一个将变量作为参数,而另一个将变量应用于变量。

我解释说虽然 toLowerCase 是字符串对象的一种方法,但 parseInt 并不是那样设计的。好的,所以它是 window.parseInt,但这只是使它成为不同对象的方法。

但这让我感到不一致——为什么一些字符串或其他函数不是它们对应对象的方法?

问题是为什么? parseInt 和其他函数不是方法是否有技术原因,或者这只是一个历史怪癖?

最佳答案

一般来说,Javascript 的设计很匆忙,因此质疑每个单独的设计决策并不总是有效地利用您的时间。

话虽如此,特别是对于 parseInt,原因很容易解释:它几乎可以接受任何任意类型,例如:

parseInt(undefined)  // NaN

由于您无法实现 undefined.parseInt(),唯一的方法就是将其实现为静态函数。

从 ECMAScript 2015 开始,parseInt 已被映射到 Number.parseInt 中,可以说它比在 window 中更有意义。为了向后兼容,window.parseInt 继续存在。

关于JavaScript:为什么有些函数不是方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41778118/

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