为什么同一函数的两个绑定返回不同的值
Why two bindings to the same function return different values
将函数绑定到同一上下文时,每次得到的引用都不同。
function foobar() {
return 1;
}
var foo = foobar.bind(this);
var bar = foobar.bind(this);
console.log(foo === bar); // Nope
- 那个代码每次都复制函数吗
- 缓存这种行为不会有任何好处吗
- 它是具体实施的吗
- 或者它是在ecmascript规范的某个地方指定的
是的,Function.protype.bind()每次都会创建一个新函数。
那个代码每次都复制函数吗?
它是否复制原始函数是底层JS引擎的一个实现细节。
bind
的返回值是一个新函数,每次调用bind
时都会得到一个新的函数。
缓存这种行为不会有任何好处吗?
缓存生成的函数可能会带来轻微的性能提升,但可能还不够担心,除非您正在生成同一函数的数百个绑定副本。小心过早优化。
相关文章:
- CoffeeScript绑定多个参数
- 使用敲除绑定多个文本数据
- 如何手动绑定两个javascript文件
- 在一个输入文本框中绑定两个模型名称
- 内容在 Ember 中绑定两个选择框
- 如何在 Angular 中绑定两个不同值之一
- 绑定两个 jstree 的棋盘
- Knockout中的CSS绑定,用于绑定两个类,其中一个是动态的,另一个是静态的并经过评估的
- 一次性绑定两个元素,使其在页面加载时可见
- 在JavaScript中,第一个绑定决定了谁“;这个“;是(绑定两次或第二次并不重要)
- 如何在同一个选择中绑定两个变量
- 如何在模板中绑定两个变量
- 如何在angular js中绑定两个不同数组的值
- 绑定两个输入,这样即使其中一个仅使用本机JS更改,它们也会显示相同的文本
- 在一个具有不同属性的按钮上绑定两个单击事件无法工作
- 在SAPUI5中的列表中绑定两个不同的ListItem
- 角度输入绑定两个字段
- 绑定两个输入,使它们显示相同的文本,即使其中一个已被用户更改
- 在 SAPUI5 中绑定两个模型
- 深度拷贝(解绑定)两个作用域变量——AngularJS