请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

data.call(vm,vm) 还是不太理解

老师我之前问了你有关 data.call(vm,vm) 的问题 您回答说是跟this有关 其实我还不是很明白 不知能否这样去理解

如果data只是返回简单的对象(比如下面这种) 那么 data.call(vm,vm)和 new data()实际上的确没什么区别

let a = {}
let b = function() {
  return {
    name: 'nancy'
  }
}
let c = b.call(a)

后来我想到之前老师的实战课程中曾经出现过一些骚操作 就是如果data里面有通过立即执行函数返回值的情况

let a = {
  _age: 18
}
let b = function() {
  return {
    name: 'nancy',
    age: (() => {
	    return this._age
    })
  }
}
let c = b.call(a)

这样子就只能通过call绑定作用域来取值了 我想 data.call(vm,vm) 就是专门这种情况服务的

不知我理解的对不对

正在回答

2回答

ustbhuangyi 2018-09-24 15:55:48

因为 data 里是可以访问 this 的,比如说取 props 定义的变量,所以要考虑这种情况。

1 回复 有任何疑惑可以回复我~
拉拉德玛西亚 2019-08-02 23:08:55

为啥有两个参数vm,一个不就行了吗

0 回复 有任何疑惑可以回复我~
  • 第一个 vm 是函数执行的上下文 this,第二个是参数,一个确实也可以。
    回复 有任何疑惑可以回复我~ 2019-08-03 09:43:33
  • 谢谢老师
    回复 有任何疑惑可以回复我~ 2019-08-03 19:58:27
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信