javascript - JavaScript 函数异常
问题描述
在 JavaScript 中,同时声明一个像这样的变量:
let something = arr.push()
为什么数组的行为就像调用 'arr.push()' 之类的 push 方法?
解决方案
为什么数组的行为类似于调用“arr.push()”之类的推送方法。
因为这正是代码所做的。它调用 arr.push()
,然后将其返回值(数组的新长度)分配给,与调用并将其返回值分配给something
的方式完全相同。x = foo()
foo
x
如果您想将函数本身分配给something
,则最后不会使用 the ()
:
let something = arr.push;
您稍后可以像这样推送到数组:
something.call(arr, valueToPush);
这.call(arr,
部分在那里,以便this
在调用期间引用数组arr
引用,因为push
使用this
. 如果你想避免这种情况,你可以使用bind
绑定arr
到函数:
let something = arr.push.bind(arr);
那么这将起作用:
something(valueToPush);
推荐阅读
- javascript - 检查此 javascript 以制作 meme
- r - R:用数据填充数据框并将值匹配到正确的日期
- python-2.7 - 'else' 出现意外语法错误,而代码似乎正确
- latex - 乳胶中的 github 徽标
- ios - How to detect a UIScrollView has finished scrolling when animation is false?
- c - `initgroups` 如何调用 `setgroups` 为用户初始化补充组 ID 列表?
- ios - jonkykong 的 SideMenu - 从右侧滑入
- r - 如何创建合适的 geom_boxplot?
- node.js - Mongoose 以 ddmmyyyy 格式保存日期
- python - Python,从循环中删除具有特定键的 JSON 元素