博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vue.js源码学习分享(七)
阅读量:5149 次
发布时间:2019-06-13

本文共 3071 字,大约阅读时间需要 10 分钟。

var _Set;/* istanbul ignore if */if (typeof Set !== 'undefined' && isNative(Set)) {  // use native Set when available.//当本地set有效时使用set  _Set = Set;} else {  // a non-standard Set polyfill that only works with primitive keys.//一个不标准的set只会和一些简单的键工作  _Set = (function () {    function Set () {      this.set = Object.create(null);    }    Set.prototype.has = function has (key) {      return this.set[key] === true    };    Set.prototype.add = function add (key) {      this.set[key] = true;    };    Set.prototype.clear = function clear () {      this.set = Object.create(null);    };    return Set;  }());}var perf;//性能{//代码块这是es6中的,代替了立即执行匿名函数  perf = inBrowser && window.performance;//Web Performance API允许网页访问某些函数来测量网页和Web应用程序的性能,包括  API和高分辨率时间数据。  if (perf && (!perf.mark || !perf.measure)) {    perf = undefined;  }}/*  */var emptyObject = Object.freeze({});//冻结一个空的对象/** * Check if a string starts with $ or _//检查一个字符串是否以$或者下划线为开头 */function isReserved (str) {  var c = (str + '').charCodeAt(0);//把参数转为字符串获取第一个字符  return c === 0x24 || c === 0x5F}/** * Define a property.//定义一个属性 */function def (obj, key, val, enumerable) {  Object.defineProperty(obj, key, {//Object.defineProperty给对象定义属性    value: val,    enumerable: !!enumerable,    writable: true,    configurable: true  });}/** * Parse simple path.//解析简单的路径 */var bailRE = /[^\w.$]/;function parsePath (path) {  if (bailRE.test(path)) {    return  } else {    var segments = path.split('.');    return function (obj) {      for (var i = 0; i < segments.length; i++) {        if (!obj) { return }        obj = obj[segments[i]];      }      return obj    }  }}var warn = noop;var tip = noop;var formatComponentName;{  var hasConsole = typeof console !== 'undefined';  var classifyRE = /(?:^|[-_])(\w)/g;  var classify = function (str) { return str    .replace(classifyRE, function (c) { return c.toUpperCase(); })    .replace(/[-_]/g, ''); };  warn = function (msg, vm) {    if (hasConsole && (!config.silent)) {      console.error("[Vue warn]: " + msg + " " + (        vm ? formatLocation(formatComponentName(vm)) : ''      ));    }  };  tip = function (msg, vm) {    if (hasConsole && (!config.silent)) {      console.warn("[Vue tip]: " + msg + " " + (        vm ? formatLocation(formatComponentName(vm)) : ''      ));    }  };  formatComponentName = function (vm, includeFile) {//格式化组件名称    if (vm.$root === vm) {      return '
' } var name = vm._isVue ? vm.$options.name || vm.$options._componentTag : vm.name; var file = vm._isVue && vm.$options.__file; if (!name && file) { var match = file.match(/([^/\\]+)\.vue$/); name = match && match[1]; } return ( (name ? ("<" + (classify(name)) + ">") : "
") + (file && includeFile !== false ? (" at " + file) : '') ) }; var formatLocation = function (str) { if (str === "
") { str += " - use the \"name\" option for better debugging messages."; } return ("\n(found in " + str + ")") };}

 

转载于:https://www.cnblogs.com/liuhao-web/p/6672229.html

你可能感兴趣的文章
淡定,啊。数据唯一性
查看>>
深入理解 JavaScript 事件循环(一)— event loop
查看>>
Hive(7)-基本查询语句
查看>>
Redis快速入门
查看>>
注意java的对象引用
查看>>
C++ 面向对象 类成员函数this指针
查看>>
inline函数的总结
查看>>
【Jquery】$.Deferred 对象
查看>>
Python字符编码
查看>>
leetcode 49. 字母异位词分组(Group Anagrams)
查看>>
NSPredicate的使用,超级强大
查看>>
自动分割mp3等音频视频文件的脚本
查看>>
财务结算的目的和一般流程
查看>>
判断字符串是否为空的注意事项
查看>>
布兰诗歌
查看>>
老李分享:5个衡量软件质量的标准
查看>>
Xcode部分插件无法使用识别的问题
查看>>
set学习记录
查看>>
用函数写注册功能
查看>>
JVM笔记4:Java内存分配策略
查看>>