鍍金池/ 問答/HTML/ vue源碼問題

vue源碼問題

問題

我們都知道vue對于需要加“-webkit-”,“-ms-”等前綴的樣式名都會自動的追加前綴,在閱讀這段源碼時發(fā)現(xiàn)了一個奇怪的問題,見下:

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?

回答
編輯回答
涼心人

我沒仔細看源碼,瞄到了這一句prop.charAt(0).toUpperCase(),

2018年9月3日 05:55