这个代码不理解

来源:5-12 Props --v2.6.11 (二)

六一888

2020-02-21

// call factory function for non-Function types
  // a value is Function if its prototype is function even across different execution context
  return typeof def === 'function' && getType(prop.type) !== 'Function'
    ? def.call(vm)
    : def

首先是没有理解注释中的内容,因此也不懂为什么要加一个条件: prop 类型不能是函数类型,然后才执行工厂函数,否则就直接拿默认值?

写回答

1回答

ustbhuangyi

2020-02-21

因为只针对对象和数组类型的 prop,要求必须是一个工厂函数,它的值是工厂函数返回的值,所以要执行。
对于函数类型的 prop,那么它的值就是这个函数本身,所以不需要执行。

1
1
六一888
原来是酱紫,话说老师新增的 props 视频讲解增加了很多示例演示,对理解知识点非常有帮助,非常感谢老师!
2020-02-21
共1条回复

Vue.js 源码深入解析 深入理解Vue实现原理

全方位讲解 Vue.js 源码,进阶高级工程师

4984 学习 · 1037 问题

查看课程