问题
我们都知道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?
我没仔细看源码,瞄到了这一句
prop.charAt(0).toUpperCase()
,