手机版

用例子说明JavaScript中调用、应用和绑定方法的异同

时间:2021-09-07 来源:互联网 编辑:宝哥软件园 浏览:

通过例子,我们将解释JavaScript中的调用、应用、绑定绑定方法,供大家参考。具体内容如下

!DOCTYPE html html head meta charset=' UTF-8 ' title/title script type=' text/JavaScript ' function MAN(姓名、性别、年龄){ this.name=namethis.sex=sexthis.age=年龄;这个。say=function (school,zhuanye) {console。日志(这个。名','这个。“性”,今年的“这个年龄”!在“学校”学习“转业”;} }函数WAIN(姓名、性别、年龄){ this.name=namethis.sex=sexthis.age=年龄;} var man=new MAN('张三','男',26);Var woman=new WOMAN('小红','女',18);曼.赛(《清华大学》,《挖掘机》);男的.说.叫(女的,‘蓝翔技校’、‘电焊’);男.说.申请(女,['新东方','火星语言']);男.说.绑定(女)(《德云社》,《流行音乐》);/脚本/标题正文/正文/html

为什么呢?调用、应用、绑定绑定做什么?为什么要学这个?

一般用来指定这个的环境,在你学会之前,你通常会有这些问题。

Var a={user:' dream catcher ',fn : function(){ console . log(this。用户);} } var b=a.fnb();//undefined当我们试图打印对象a中的用户,但打印时未定义,会发生什么?如果我们直接执行a.fn()就可以了。

Var a={user:' dream catcher ',fn : function(){ console . log(this。用户);} } a . fn();//Dreamcatcher可以在这里打印,因为这里这个指向函数a,那么上面为什么不指向a呢?如果我们需要知道这个方向,请在js中彻底了解这个方向,而不必背这篇文章。

虽然这种方法可以达到我们的目的,但有时我们必须将这个对象保存在另一个变量中,所以我们可以使用以下方法。

1、呼叫()

Var a={user:' dream catcher ',fn : function(){ console . log(this。用户);//dream catcher } } var b=a . fn;呼叫(a);通过在调用方法的第一个参数中添加B,简而言之,这将指向该对象。除了第一个参数,调用方法还可以添加多个参数,如下所示:

Var a={user:' dream catcher ',fn: function (e,ee) {console.log (this。用户);//捕梦者console . log(e ee);//3 } } var b=a . fn;b.call(a,1,2);2、应用()

apply方法有点类似于call方法,它也可以改变这个方向

Var a={user:' dream catcher ',fn : function(){ console . log(this。用户);//dream catcher } } var b=a . fn;b .应用(a);同样,apply可以有多个参数,但不同之处在于第二个参数必须是数组,如下所示:

Var a={user:' dream catcher ',fn: function (e,ee) {console.log (this。用户);//捕梦者console . log(e ee);//11 } } var b=a . fn;b .应用(a,[10,1]);或者

Var a={user:' dream catcher ',fn: function (e,ee) {console.log (this。用户);//捕梦者console . log(e ee);//520 } } var b=a . fn;var arr=[500,20];b .应用(a,arr);//注意,如果call和apply的第一个参数写为null,那么这是指window对象var a={user:' dream catcher ',fn : function(){ console . log(this);//窗口{external:对象,chrome:对象,document:文档,a:对象,SpeechSynthesis 3360 SpeechSynthesis…} } var b=a . fn;b . apply(null);3、绑定()

bind方法与call和apply方法有些不同,但无论如何,它们都可以用来改变方向。

先说说他们的不同。

Var a={user:' dream catcher ',fn : function(){ console . log(this。用户);} } var b=a.fnb .绑定(a);我们发现代码没有打印出来。是的,这就是绑定方法和调用和应用方法之间的区别。事实上,bind方法返回一个修改过的函数。

Var a={user:' dream catcher ',fn : function(){ console . log(this。用户);} } var b=a.fnvar c=b . bind(a);console . log(c);//function(){[原生代码]}那么我们现在执行function c,看看能否打印出对象a中的用户。

Var a={user:' dream catcher ',fn : function(){ console . log(this。用户);//dream catcher } } var b=a . fn;var c=b . bind(a);c();好的,bind也可以有多个参数,参数可以执行的时候可以重新添加,但是需要注意的是,参数是按照形式参数的顺序进行的。

Var a={user:' dream catcher ',fn: function (e,d,f) {console.log (this。用户);//捕梦者console.log(e,d,f);//10 1 2 } } var b=a . fn;var c=b.bind(a,10);c(1,2);概要:在上下文中调用和应用更改,并立即执行该函数。bind方法可以随时进行相应的函数调用,并且可以在执行过程中添加参数。这就是它们的区别,大家可以根据自己的实际情况选择使用。

以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。

版权声明:用例子说明JavaScript中调用、应用和绑定方法的异同是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。