vue的methods中方法2中调用this.方法1

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue的methods中方法2中调用this.方法1相关的知识,希望对你有一定的参考价值。

参考技术A 100%是作用域问题引起的,你需要确保ajax回调的this与请求外的this是同一个作用域,可以用箭头函数,或者在回调外定义一个变量指向this对象 参考技术B methods中的function中的this指向vue实例,其他的没什么这种调用方式是直接访问test2函数,没有任何的this绑定,所以肯定访问不到
this.$options.methods.test2();
而直接调用this.test2(),内部肯定做了this绑定的,例如
this.$options.methods.test2.bind(this)();
更新:vue源码中的处理
/**
*
setup
instance
methods.
methods
must
be
bound
to
the
*
instance
since
they
might
be
passed
down
as
a
prop
to
*
child
components.
*/
vue.prototype._initmethods
=
function
()

var
methods
=
this.$options.methods
if
(methods)

for
(var
key
in
methods)

this[key]
=
bind(methods[key],
this)



function
bind
(fn,
ctx)

vue的mounted中调用methods里面的方法报错说方法未定义?

参考技术A mounted: function () this.refresh() 本回答被提问者采纳

以上是关于vue的methods中方法2中调用this.方法1的主要内容,如果未能解决你的问题,请参考以下文章

vue.js methods中的方法互相调用时变量的作用域是怎样的

Vue中的methods方法

vue的mounted中调用methods里面的方法报错说方法未定义?

vue 进入页面每次都调用methods里的方法

js文件调用vue里methods的方法

vue-element的表单验证能调用methods里的方法吗?