为什么 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/