Object.freeze()方法

冻结对象之后,该对象内部的属性只能读,不能改
在vue源码当中的冻结方法

//Obeject.freeze() js当中的冻结方法,参数是一个对象,冻结之后对象当中的属性不能进行增、改,返回的值与传的值相同var emptyObject = Object.freeze({});

Object.prototype.hasOwnProperty()

/返回boolean值,表示对象自身有没有指定的属性//hasOwnProperty在js当中不是敏感词,所以无法确定到底是使用原型链上的这个方法还是使用的只是一个普通的对象// hasOwnProperty:function(){}返回值//var foo={// hasOwnProperty:function(){//    return false// }//bar:"hello"// }//foo.hasOwnProperty始终返回是false,用到call方法,使其使用到真正原型链上的方法

在vue源码当中的使用

var hasOwnProperty = Object.prototype.hasOwnProperty;function hasOwn (obj, key) {return hasOwnProperty.call(obj, key)}

闭包

闭包就是在函数外部能够访问到函数内部的嵌套函数
使用闭包要注意在函数内部应该用var来声明变量,let具有块级作用域的特性,因此不能用let声明
在vue源码当中的使用

function cached (fn) {var cache = Object.create(null);return (function cachedFn (str) {var hit = cache[str];//函数内部将父函数定义的变量作为返回值赋值给hit,在函数外部可以访问到函数内部定义的变量return hit || (cache[str] = fn(str))})}var camelizeRE = /-(\w)/g;//正则表达式\w表示任意字母数字下划线var camelize = cached(function (str) {//replace方法截取两个参数,第一个为下标多少开始,第二个参数为截取几位。//c?c.toUpperCase:''三目运算符,c为true时转化为大写,为false时为空return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })});

学习大神作品(vue源码三)相关推荐

  1. 「Vue源码学习」常见的 Vue 源码面试题,看完可以说 “精通Vue” 了吗?

    Vue源码面试题 一.行时(Runtime)+ 编译器(Compiler) vs. 只包含运行时(Runtime-only) webpack Rollup Browserify 二.Vue 的初始化过 ...

  2. 大神手把手教源码阅读的方法、误区以及三种境界

    丁威 中间件兴趣圈 读完需要 1 分钟 速读仅需 1 分钟 在技术职场中普遍存在如下几种现象: 对待工作中所使用的技术不需要阅读源码,只需在开发过程中能够熟练运用就行 看源码太费时间,而且容易忘记,如 ...

  3. 前端学习(2537):vue源码解析2伪数组转换为真数组

    /*1[].slice.call(lis)*//*伪数组 */const lis=document.getElementsByTagName('li')/*判断数组 false*/console.lo ...

  4. 前端学习(2534)vue源码解析

  5. VUE源码学习第一篇--前言

    一.目的 前端技术的发展,现在以vue,react,angular为代表的MVVM模式以成为主流,这三个框架大有三分天下之势.react和angular有facebook与谷歌背书,而vue是以一己之 ...

  6. vue源码构建代码分析

    这是xue源码学习记录,如有错误请指出,谢谢!相互学习相互进步. vue源码目录为 vue ├── src #vue源码 ├── flow #flow定义的数据类型库(vue通过flow来检测数据类型 ...

  7. Vue源码学习 - 组件化(三) 合并配置

    Vue源码学习 - 组件化(三) 合并配置 合并配置 外部调用场景 组件场景 总结 学习内容和文章内容来自 黄轶老师 黄轶老师的慕课网视频教程地址:<Vue.js2.0 源码揭秘>. 黄轶 ...

  8. Vue 源码阅读学习(三)

    第三节:函数柯里化与渲染模型 嘿,朋友们,本节是 Vue 源码阅读的第三讲.Vue 源码阅读系列得到了赞赏,我很高兴,同时希望大家可以给予反馈!我虚心接纳您的意见! 如果没有看之前的第一讲和第二讲的内 ...

  9. Vue源码学习(三)——数据双向绑定

    在Vue中我们经常修改数据,然后视图就直接修改了,那么这些究竟是怎么实现的呢? 其实Vue使用了E5的语法Object.defineProperty来实现的数据驱动. 那么Object.defineP ...

最新文章

  1. keras画acc和loss曲线图
  2. PostGis基本操作-新建空间数据库与shp数据的导入
  3. Spring加载resource时classpath*:与classpath:的区别(转)
  4. Android 一直往文件写数据_对标苹果 AirDrop,Google 为安卓开发了一个文件传输利器...
  5. ECCV 2020 | 小米提出 Fair DARTS :公平的可微分神经网络搜索
  6. c语言表达式10 6的结果,C语言表达式(++i)+(++i)+(++i)结果多少?
  7. 操作系统知识--线程
  8. java常用的对象转map的几种方式
  9. 微信小程序 测试号 申请
  10. 吐血给女朋友讲解spring循环依赖
  11. github创建代码仓库并上传代码
  12. matlab斜抛运动不用公式,分享斜抛运动中算末速度的公式
  13. java用画正弦函数_用java语言绘制正弦曲线
  14. 服务器芯片组驱动,Intel芯片组INF驱动9.1.1.1027 For Windows7
  15. 在 Coq 中形式化 100 个定理
  16. dns被劫持怎么办,什么是dns劫持,有什么方法处理?
  17. .bat批处理命令的介绍
  18. Linux-常用快捷键
  19. 编译原理大作业-PL0语言编译器
  20. C语言数据结构与算法---图的遍历

热门文章

  1. 快速查询优速多个快递物流,并将信息导出EXCEL表格
  2. 入门学习Nginx代理服务器?就看这篇Nginx进阶学习最佳配置实践指南
  3. xm-select 下拉框分组单选事件
  4. 多种UI和界面设计汇总(一)
  5. 去重用逗号隔开的字符串
  6. 『python爬虫』26. selenium与超级鹰处理复杂验证码的处理(保姆级图文)
  7. 支付宝支付成功后要重新登录问题解决小记
  8. k3s 搭建高可用rancher
  9. python语言的变量随时命名随时_计算机二级
  10. 25组-四象限法进行功能分析