除了将this换成that,还有其他一些方法来解决Vue数据绑定中的this指向问题。其中一种方法是使用箭头函数。箭头函数不会改变this的指向,它会捕获父级作用域的this值。 created() { axios.get('/api/data') .then(response => { this.data = response.data; }); } 另一种方法是使用bind()函数来绑定this的指向。
call和bind传参相同,多个参数依次传入的; call和apply都是对函数进行直接调用(立即执行),而bind方法不会立即调用函数,而是返回一个修改this后的函数(调用 修改后的函数)。 代码语言:javascript 复制 functiontestFn(param1,param2,param3){console.log(this,'---this')console.log(param1,param2,param3,'--->...
不用 that = this 的话,最好的方法就用bind了,understanding-javascript-function-prototype...
对于普通函数,this指的是直接的调用者,在非严格模式下,如果没有直接调用者,this指的是window。(匿名函数指向的是window) 箭头函数(es6)是没有自己的this,在它内部使用的this是由它定义的宿主对象(vue实例)决定,this指的是vue实例对象 绑定vue实例到this的方法 1.使用bind lists:function(){ var arr=[]; this...
1.使用bind showMessage1()可以改为: showMessage1(){ setTimeout(function() { console.log(this)//指向vue实例}.bind(this), 10) }, 对setTimeout()里的匿名函数使用bind()绑定到vue实例的this。这样在匿名函数内的this也指向vue实例。 2.把vue实例的this赋值给另一个变量再使用 ...
},methods: {getData() {setTimeout(function() {console.log(this.message);//=>我是vue下的message!}.bind(this),1000); } } AI代码助手复制代码 通过bind可以改变this的指向,这是一中解决方式 还有一种比较常用 this赋值暂存 created() {this.getData() ...
我们知道v-bind的值可以是 sayHellofunction(){alert('hello');}或()=>{alert('hello');}sayHello($event); 这3种方式吧,通过正则表达式判断出了方法路径(methodPath),函数表达式(functionExpression)这两种方式。 (其实看到正则表达式我就犯晕,感叹想要写模板解析必须正则表达式得很熟啊) ...
Vue模板语法中不能使用this是因为Vue在编译模板时会自动生成渲染函数,而渲染函数中的上下文是Vue实例本身。因此,在模板中直接使用this是多余的。 Vue模板语法中的数据绑定是通过特殊的指令来实现的,例如v-bind和v-on。v-bind用于在模板中绑定数据,v-on用于在模板中绑定事件。这些指令会在渲染函数中被解析,并且会被...
在使用axios的时候,bind(this)是指的什么意思? this.$http.post(Urls.register(), this.formItem).then(function (response) { }.bind(this)) .catch(function (response) { console.log(response) }) axiosvue.js 有用关注3收藏 回复 阅读7.2k 2...
this总是指向它的直接调用者, 例如 obj.func() ,那么func()里的this指的是obj。 在默认情况(非严格模式,未使用 'use strict'),如果函数没有直接调用者,this为window 在严格模式下,如果函数没有直接调者,this为undefined 使用call,apply,bind绑定的,this指的是绑定的对象 绑定vue实例到this的方法 为了避免this...