我正在使用vue / vuetify,并且我正在尝试使其在IE11中工作。运行它时,出现此错误
TypeError: Object doesn't support property or method 'values'
但是当我添加一个pollyfill
if (!Object.values) {
Object.prototype.values = function (obj) {
return Object.keys(obj).map(function (e) {
return obj[e];
});
};
}
我是从jquery 3.4.0中获得的
Object.keys: argument is not an Object
因为它最终调用了上面的函数,但是没有将任何参数传递给它。从这里
add = function( key, valueOrFunction ) {
// If value is a function, invoke it and use its return value
var value = isFunction( valueOrFunction ) ?
valueOrFunction() :
valueOrFunction;
s[ s.length ] = encodeURIComponent( key ) + "=" +
encodeURIComponent( value == null ? "" : value );
};
它打电话
valueOrFunction() // which is the Object.values()
这是一个jsfiddle
https://jsfiddle.net/cn75e4xs/3/
在IE11中打开,然后查看“控制台”选项卡。我得到
Object.keys: argument is not an Object
因为调用该函数时没有传递参数,所以obj
在pollyfill中变得未定义。
答案 0 :(得分:0)
由于某些原因,您正在分配给Object.prototype.values
。您应该改为分配给Object.values
:
Object.values = function (obj) {
// ^ no .prototype
return Object.keys(obj).map(function (e) {
return obj[e];
});
};
由于您向Object.prototype
添加了一个没有making it non-enumerable的属性,所以jQuery代码中断了。