javascript - 为什么 parseInt 不是一个方法?

标签 javascript

为什么 parseInt 是函数而不是方法?

功能:

var i = parseInt(X);

方法:

var i = X.parseInt();

最佳答案

编辑:

我不是 100% 确定为什么 parseInt 不是 String 的方法,除了它可以在任何东西上运行。看起来它可能是 Math 的一部分,但它也不是真正的数学运算。

结束编辑

parseInt 是全局对象的一个​​方法。在浏览器中,全局对象是window。您可以调用 window.parseInt(),但 JS 引擎允许您快捷调用全局方法。

也就是说,它有一些成本,因为引擎必须扫描作用域链以寻找 parseInt 的定义。一般来说,如果我在一个范围内单独调用这样的方法,我会在全局范围内引用它:

var foo = function (someString) {
    var bar;

    // ...

    bar = window.parseInt(someString, 10);

    // ...
};

但是,如果我的代码需要在一个范围内对方法进行多次调用,我会将其本地化并使用引用:

var foo = function (someString, someOtherString) {
    var parseInt = window.parseInt,
      bar,
      baz;

    // ...

    bar = parseInt(someString, 10);
    baz = parseInt(someOtherString, 10);

    // ...
};

关于javascript - 为什么 parseInt 不是一个方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9379581/

相关文章:

javascript - Papa Parse 在解析 CSV 文件时给出额外的空行

javascript - 这个 QuickSort 实现有什么问题?

javascript - 猫头鹰轮播不适用于 Bootstrap 选项卡导航

javascript - 在 div 中放置一个 d3 图表会阻止其上方的链接

javascript - jQuery anchor 链接选择器问题

javascript - 隐藏元素后继续一个 CSS 动画

javascript - 在jsp中的el表达式中使用javascript变量

javascript - 在 javascript/Angular 中扩展对象

javascript - 当 Webix 列表中没有项目时如何将其呈现为空白

javascript - 使用代理访问自定义元素的数据集