vuejs methods中的方法互相调用时变量的作用域是
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vuejs methods中的方法互相调用时变量的作用域是相关的知识,希望对你有一定的参考价值。
methods中的function中的this指向vue实例,其他的没什么这种调用方式是直接访问test2函数,没有任何的this绑定,所以肯定访问不到 this$optionsmethodstest2(); 而直接调用thistest2(),内部肯定做了this绑定的,例如 this$optionsmethodsvuejs methods中的方法互相调用时变量的作用域是 参考技术A 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)
return function (a)
var l = arguments.length
return l
? l > 1
? fn.apply(ctx, arguments)
: fn.call(ctx, a)
: fn.call(ctx)
以上是关于vuejs methods中的方法互相调用时变量的作用域是的主要内容,如果未能解决你的问题,请参考以下文章
vue.js methods中的方法互相调用时变量的作用域是怎样的