在Javascript中使用调用()、应用()、绑定()的讨论
电话(thisobj { },args)和应用(thisobj {一},)
的作用是一样的,只不过是用这种方法thisobj改变对象,对象之间的差异在两调用方法(第一个参数是一样的)是调用方法的参数是一个列表的参数的应用方法是两阵
它也更直观地说明:
窗口颜色=';
颜色:蓝色};
功能saycolor(){
警戒(这个颜色);
};
SayColor(); / /红(全局函数,这是窗口)
SayColor.call(本); / /红(调用调用方法,指定的对象是这个,这是窗口,它并不意味着什么)
saycolor.call(窗口); / /红(调用调用方法,指定的对象是窗口,没有意义)
saycolor.call(O); / /蓝(调用调用方法,指定的对象啊,所以这是指客体,在原来的窗口点O)。
saycolor.apply(O); / /蓝(调用调用方法,指定的对象啊,所以这是指客体,在原来的窗口点O)。
bind()方法在ecmascript5类似于前两种方法。函数方法创建一个函数实例。此实例的这个值绑定到传递给绑定()函数的值。
实例uff1a
函数A(y){
返回这个;
};
var:x:1 };
var g = a.bind(O);
g(2);3
从示例中可以看到,函数a被绑定到对象o并返回一个新函数g,当调用g时,函数被称为对象O的方法。
绑定()方法是将函数绑定到一个对象并返回一个新函数,这个新函数中的传入参数将传递给绑定的函数。
下面看看它们之间的区别。
在js中,这三个都是用来改变函数方向的对象,它们之间的区别是什么。
在差异之前,总结了三者之间的相似之处。
1。所有这些对象都用来改变函数的方向。
2,第一个参数是指向该对象的对象。
3,您可以使用以下参数传递参数。
所以它们之间的区别是,先看一个例子。
VaR XW = { {
姓名:王晓
性别:男人
年龄:24岁,
表示:函数(){
警报(this.name +
}
}
XH = { { var
姓名:小红帽
性别:妇女
年龄:18
}
Xw.say();
这事没什么要说的。肯定是王晓,今年24岁。
那么如何使用XW说显示XH的数据的方法。
对于调用,它可以是这样的:
复制代码代码如下所示:
xw.say.call(XH);
对于应用程序,它可以是这样的:
复制代码代码如下所示:
Xw.say.apply(XH);
对于绑定,它需要这个:
复制代码代码如下所示:
Xw.say.bind(XH)();
如果你写xw.say.bind(XH)直接,你不会有任何结果,你看到区别了吗调用和应用都是对函数的直接调用,绑定方法返回一个函数,因此需要()调用它。
那么电话和申请之间有什么区别呢让我们改写一下这个例子。
VaR XW = { {
姓名:王晓
性别:男人
年龄:24岁,
说:功能(学校,年级){
警报(this.name +
}
}
XH = { { var
姓名:小红帽
性别:妇女
年龄:18
}
您可以看到说方法有两个参数,我们通过调用的参数传递参数。
对于电话,情况就是这样。
复制代码代码如下所示:
xw.say.call(XH,实验小学
这是适用的情况。
复制代码代码如下所示:
Xw.say.apply(XH,{实验小学
你看到区别了吗调用后面的参数是与方法的一对一,应用的第二个参数是数组。数组中的元素与对应的方法一一对应,这是它们之间最大的区别。
那么绑定是如何传递的呢它可以通过类似的调用。
复制代码代码如下所示:
Xw.say.bind(XH,实验小学
但是由于绑定的返回仍然是一个函数,所以我们也可以在调用时再次传递引用。
复制代码代码如下所示:
Xw.say.bind(XH)(实验小学
这一切都是本文的全部内容。我希望你能喜欢它。