我正在使用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中变得未定义。
发布于 2019-04-23 03:22:31
由于某种原因,您正在分配给Object.prototype.values
。您应该改为将其赋值给Object.values
:
Object.values = function (obj) {
// ^ no .prototype
return Object.keys(obj).map(function (e) {
return obj[e];
});
};
jQuery代码已损坏,因为您向Object.prototype
添加了不带making it non-enumerable的属性。
https://stackoverflow.com/questions/55799626
复制相似问题