IE11不支持fill()

我有以下语法。我是ES6语法的新手。

const renderLoading = () => Array(20).fill('').map(() => <ExpampleLine/>);

Internet Explorer不支持fill()命令。是否有单独的fill()解决方案,还是我应该重写整个语法。需要有关语法的帮助。

回答:

使用polyfill:

if (!Array.prototype.fill) {

Object.defineProperty(Array.prototype, 'fill', {

value: function(value) {

// Steps 1-2.

if (this == null) {

throw new TypeError('this is null or not defined');

}

var O = Object(this);

// Steps 3-5.

var len = O.length >>> 0;

// Steps 6-7.

var start = arguments[1];

var relativeStart = start >> 0;

// Step 8.

var k = relativeStart < 0 ?

Math.max(len + relativeStart, 0) :

Math.min(relativeStart, len);

// Steps 9-10.

var end = arguments[2];

var relativeEnd = end === undefined ?

len : end >> 0;

// Step 11.

var final = relativeEnd < 0 ?

Math.max(len + relativeEnd, 0) :

Math.min(relativeEnd, len);

// Step 12.

while (k < final) {

O[k] = value;

k++;

}

// Step 13.

return O;

}

});

}

如此处提供:https

:

//developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/fill?v=example#Polyfill

以上是 IE11不支持fill() 的全部内容, 来源链接: utcz.com/qa/415442.html

回到顶部