所以需要在函数调用时候.bind(this)把当前的this绑定给函数内部,防止this指向改变。 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Function/bind <Script url="/xxx/index.js" onLoad={initMap.bind(this)} />
Function.length // 返回形参个数 Function.name // 返回函数实例的名称 Function.prototype.call(thisArg, arg1, arg2, ...) Function.prototype.apply(thisArg, [arg1, arg2, ...]) // 调用给定this值的函数 Function.prototype.bind(thisArg[, arg1[, arg2[, ...]]]) // 创建一个新的函数 1. 2...
func1:function() { console.log(this.name) }, func2:function() { setTimeout( ()=>{this.func1() },100); } }; a.func2()//Cherry 2.使用 apply、call、bind vara ={ name :"Cherry", func1:function() { console.log(this.name) }, func2:function() { setTimeout(function() {this...
bind()方法创建一个新的函数,在bind()被调用时,这个新函数的this被bind的第一个参数指定,其余的参数将作为新函数的参数供调用时使用。 apply、call、bind实现 apply的实现: Function.prototype.myApply= function(context){ context.fn = this;//1.将函数挂载到传入的对象 var arg = [...arguments].splice(1...
functiondescribe(){ console.log(`${this.name} 的域名是 ${this.domainName}`) } constSummary=describe.bind(webkaka); Summary(); 输出 卡卡网 的域名是 webkaka.com 在这个例子中,每次你调用Summary,它总是会返回绑定到它的this原始值。尝试将新this上下文绑定到它会失败,因此你始终可以相信绑定函数返回...
3、浅试一下bind代码:this.name='guizimo'letobj={name:'zimo',getName:function(){returnthis....
log(this.a) // this指向了全局 }, 10) } } obj.getA() // 异步情况,导致this指向丢失,this 此时指向window // 返回undefined 指向丢失解决 箭头函数绑定 使用变量将this保存 bind绑定处理 // 箭头函数绑定 const obj = { a: 10, getA: function () { setTimeout(() => { console.log(this...
bind、call、apply 的相同点 都是Function原型上的方法 用途都是改变 this 的指向 第一个参数都是新的 this bind、call、apply 的不同点 bind 会返回一个新的函数,目标函数在新函数调用时才会执行 let newFunc = obj.myFn.bind(newObj,'北京','上海'); ...
constobj={age:18}functionfn(){console.log(this)}constfun=fn.bind(obj)console.log(fun) 应用场景 只想改变this指向,并且不想调用这个函数的 比如改变定时器内部的this指向:如果有一个按钮,当我们点击了之后就禁用这个按钮,2秒钟之后又开启这个按钮 ...
【js】关于this指针-理解call、apply、bind 首次讲解视频,听了一下,录音声音太小(暂不知道该怎么调节),老是咳咳,不太流畅。暂时不理想,日后继续努力。(能写出来还不够,还要会说出来) 首先,this指针只存在于函数(function)中。用于指向一个对象 this在不同函数中有3种代表方式:...