🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
大家都知道js里皆对象,函数也不例外,函数也是对象,当然说对象就有对应的方法。 1.bind,bind(o) 传入一个对象,返回一个函数,这个函数this的指向改变为传入的对象 2.call 3.apply call和apply相似,直接改变函数的this指向传入的参数。 区别在于**传参不同** call(o,1,2,3) apply(o,[1,2,3]) call安顺序传入参数,apply只接受2个参数,第一个对象 需要指向的,第二个是数组。 可以试试下面代码会输出什么: ~~~ window.name='全局的我' var o = { name:'局部的我' } function sayName(){ console.log(this.name) } sayName() //全局的我 o.sayName=sayName o.sayName() //局部的我 o.sayName=sayName.bind(window) o.sayName() //全局的我 o.sayName=sayName.call(o) o.sayName=sayName.apply(o) ~~~