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中的方法互相调用时变量的作用域是怎样的