位置: 编程技术 - 正文
推荐整理分享关于JS中的apply,call,bind的深入解析(关于js的描述错误的是),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:javascript的apply,js中的apply方法,关于js的描述错误的是,js application,js中apply函数,js中的apply方法,js中apply的用法,js中apply的用法,内容如对您有帮助,希望把文章链接给更多的朋友!
在Javascript中,Function是一种对象。Function对象中的this指向决定于函数被调用的方式。使用apply,call 与 bind 均可以改变函数对象中this的指向,在说区别之前还是先总结一下三者的相似之处:1、都是用来改变函数的this对象的指向的。2、第一个参数都是this要指向的对象。3、都可以利用后续参数传参。
call方法:
语法:call([thisObj[,arg1[, arg2[, [,.argN]]]]]) 定义:调用一个对象的一个方法,以另一个对象替换当前对象。 说明:call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。 如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。
apply:
语法:apply(thisObj,数组参数)定义:应用某一个对象的一个方法,用另一个对象替换当前对象说明:如果参数不是数组类型的,则会报一个TypeError错误。
bind:
在EcmaScript5中扩展了叫bind的方法(IE6,7,8不支持),bind与call很相似,,例如,可接受的参数都分为两部分,且第一个参数都是作为执行时函数上下文中的this的对象。不同点有两个:①bind的返回值是函数;②后面的参数的使用也有区别;
先看例子一:
对于,call,可以这么用:add.call(sub,3,1);结果为4
对于,apply,可以这么用;add.apply(sub,[3,1]);结果为4
对于,bind,可以这么用:add.bind(sub)(3,1);结果为4
可以看到输出结果都一样,但是传参用法不一样;
再看例子二:
对于call,需要这样:pet.say.call(jack,"欢迎您!")对于apply,需要这样:pet.say.apply(jack,["欢迎您!"])对于bind,需要这样:pet.say.bind(jack,"欢迎您")()此时输出console.log(this.name),发现this.name为jack,this上下文已经发生改变了;
以上这篇关于JS中的apply,call,bind的深入解析就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持积木网。
实例详解ECMAScript5中新增的Array方法 ECMAScript5给出了一系列新的API接口,这些接口在新的浏览器中大部分是被支持的,IE9,Chrome,FirFor都支持,也有少量API不是所有浏览器都支持,以下内容
js老生常谈之this,constructor ,prototype全面解析 前言javascript中的this,constructor,prototype,都是老生常谈的问题,深入理解他们的含义至关重要。在这里,我们再来复习一下吧,温故而知新!thisthis表示当
JS中JSON对象和String之间的互转及处理技巧 JSON:JavaScript对象表示法(JavaScriptObjectNotation),其实JSON就是一个JavaScript的对象(Object)而已。如有不清楚JSON,可以去w3cschool了解
标签: 关于js的描述错误的是
本文链接地址:https://www.jiuchutong.com/biancheng/373395.html 转载请保留说明!上一篇:JavaScript数组去重的两种方法推荐(javascript数组去重代码)
下一篇:实例详解ECMAScript5中新增的Array方法(vxlan配置实例详解)
友情链接: 武汉网站建设