为了账号安全,请及时绑定邮箱和手机立即绑定

在Vue源码中,为什么在Vue上挂载了两个相同的方法却都能执行?

在Vue源码中,为什么在Vue上挂载了两个相同的方法却都能执行?

慕侠2389804 2019-03-13 14:15:46
entry-runtime-with-compiler.js内const mount = Vue.prototype.$mountVue.prototype.$mount = function (  el?: string | Element,  hydrating?: boolean): Component {  el = el && query(el)  /* istanbul ignore if */  if (el === document.body || el === document.documentElement) {    process.env.NODE_ENV !== 'production' && warn(      `Do not mount Vue to <html> or <body> - mount to normal elements instead.`    )    return this  }//太长了贴一部分/runtime/index.jsVue.prototype.$mount = function (  el?: string | Element,  hydrating?: boolean): Component {  el = el && inBrowser ? query(el) : undefined  return mountComponent(this, el, hydrating)}然后我自己新建几个js试了下为什么不行呢test.jsfunction va(){}export {va}test1.jsimport {va} from './test.js'va.prototype.hei = function(){    alert(1)    console.log(1)}test2.jsimport {va} from './test.js'const ob = va.prototype.heiva.prototype.hei = function(){    alert(2)    console.log(2)}test3.jsimport {va} from './test.js'var a = new va();a.hei()最后只alert2,打印了2ps:我为了保持相似所以建了好几个..但是为什么不行呢
查看完整描述

3 回答

?
慕慕森

TA贡献1856条经验 获得超17个赞

源码中const mount = Vue.prototype.$mount
结尾又重新调用 所以执行了两次

查看完整回答
反对 回复 2019-03-29
?
紫衣仙女

TA贡献1839条经验 获得超15个赞

你最后一次修改的va.prototype.hei是啥你调用到的就是啥啊,跟你引入的顺序有关系。


查看完整回答
反对 回复 2019-03-29
  • 3 回答
  • 0 关注
  • 1055 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信