Vue methods 用箭头函数取不到 this

2020-01-04 08:10:41

参考地址 Vue methods 用箭头函数取不到 this

首先,看文档 http://cn.vuejs.org/api/#methods

实例方法。实例可以直接访问这些方法,也可以用在指令表达式内。方法的 this 自动绑定到实例。
在vue的methods的this是自动绑定的

然后见代码:https://github.com/vuejs/vue/...

function initMethods (vm: Component) {  const methods = vm.$options.methods  if (methods) {    for (const key in methods) {
      vm[key] = methods[key] == null ? noop : bind(methods[key], vm)      if (process.env.NODE_ENV !== 'production' && methods[key] == null) {
        warn(          `method "${key}" has an undefined value in the component definition. ` +          `Did you reference the function correctly?`,
          vm
        )
      }
    }
  }
}

你用箭头函数,会返回一个绑定当前执行上下文中的this,而且这个this,不可再切换更改了。你此处绑定的 this 是当前函数体内的this,严格模式下为undefined;



更多讨论内容,点开文章开头的链接


  • 2018-10-11 23:58:07

    Linux实例带宽和CPU跑满或跑高排查

    使用云服务器 ECS 时,若出现服务的速度变慢,或 ECS 实例突然断开,可以考虑服务器带宽和 CPU 是否有跑满或跑高的问题。若您预先创建报警任务,当带宽和 CPU 跑满或跑高时,系统将自动进行报警提醒。Linux 系统下,您可以按如下步骤进行排查:

  • 2018-10-15 09:22:07

    使用epublib解析epub文件(章节内容、书籍菜单)

    前阵子在android上解析epub格式的书籍。发现了这个开源的epub解析库。相关资料甚少!折腾了一阵子,发现其实光使用的话还是挺简单的。真是萌萌哒~下面简单介绍一下epublib。