vue源码问题

问题

我们都知道vue对于需要加“-webkit-”,“-ms-”等前缀的样式名都会自动的追加前缀,在阅读这段源码时发现了一个奇怪的问题,见下:

var vendorNames = ['Webkit', 'Moz', 'ms'];
var emptyStyle;
var normalize = cached(function (prop) {
  emptyStyle = emptyStyle || document.createElement('div').style;
  prop = camelize(prop);
  if (prop !== 'filter' && (prop in emptyStyle)) {
    return prop
  }
  var capName = prop.charAt(0).toUpperCase() + prop.slice(1);
  for (var i = 0; i < vendorNames.length; i++) {
    var name = vendorNames[i] + 请输入代码capName;
    if (name in emptyStyle) {
      return name
    }
  }
});

请注意,vendorNames中保存的前缀都是大写字母开头,拼接后的name应该像WebkitHighlight这样。emptyStyle中的所有key开头字母是小写的,所以WebkitHighlight不应该存在于emptyStyle中,实际上确实存在的。why?

阅读 2k
1 个回答

我没仔细看源码,瞄到了这一句prop.charAt(0).toUpperCase()

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题