当我使用bind时,我应该改变对Javascript函数的调用
Is there any way I should change my call to a Javascript function when I use bind?
当我这样定义一个函数时:
var town = 'Liverpool';
foo = function(x,y){
alert(x);
alert(y);
alert(this.town)
}.bind(this);
我已经了解到,如果我使用IE9及以上浏览器,将"this"传递到函数的一种方法是使用.bind(this)。然而,如果我这样做,是否意味着我需要改变定义函数的x和y参数的方式?
你可以像foo(argument1, argument2)那样调用这个函数
bind()方法创建一个新函数,当调用该函数时,将其this关键字设置为所提供的值,并在调用新函数时提供的任何参数之前设置给定的参数序列。
你可以传递多个参数给bind(),使函数具有预先指定的初始参数。这些参数(如果有的话)跟随所提供的this值,然后插入到传递给目标函数的参数的开头,后面是传递给绑定函数的参数,无论何时调用绑定函数。
function list() {
return Array.prototype.slice.call(arguments);
}
var list1 = list(1, 2, 3); // [1, 2, 3]
// Create a function with a preset leading argument
var leadingThirtysevenList = list.bind(undefined, 37);
var list2 = leadingThirtysevenList(); // [37]
var list3 = leadingThirtysevenList(1, 2, 3); // [37, 1, 2, 3]
进一步阅读
MDN链接
相关文章:
- 鼠标光标改变Javascript链接的DIV
- 如何学习和改变javascript转换规模
- 改变Javascript变量而不刷新
- 在函数内改变JavaScript数组
- JQuery UI选项卡选择的背景不改变javascript
- 如何通过ajax改变javascript中的局部变量
- 改变JavaScript对象定义样式会导致画布保持空白
- 如何调用函数一旦dom元素的样式改变Javascript/jquery
- 我如何使一个按钮改变Javascript数组位置
- 改变JavaScript中分隔符的显示属性
- 如何改变javascript函数在html中编写的参数
- 改变JavaScript中未知元素的样式
- 表单动作改变javascript用户选项选择
- 使用属性来改变javascript插件中的全局变量
- 改变javascript元素的样式
- 如何改变JavaScript's JSON中使用的数组括号
- 在父类的方法中使用子类的类变量,这样变量就可以动态地改变(javascript)
- 函数(a,b) {a = b;}不会改变javascript中a的值
- 如何改变javascript消息框编码器的条件
- 动态改变Javascript D3布局模拟