[前端漫谈]Polyfill,Ponyfill 和 Prollyfill

6,123 阅读1分钟

0x000 概述

哈哈哈,看到很有意思的三个词,仓库放这里。 以及三篇引用的文章:

0x001 polyfill

polyfill 是针对原生 API 的 monkey patch,他会影响整个运行环境。比如:

// polyfill
Number.isNaN = Number.isNaN || function (value) {
	return value !== value;
};

// 使用
require('is-nan-polyfill');

Number.isNaN(5);

0x002 ponyfill

像 polyfill 却带着小马的纯净(Like polyfill but with pony pureness)?

ponyfill 是以模块的方式导出功能,因此只会在本地,而不会影响整个环境:

// ponyfill
module.exports = function (value) {
	return value !== value;
};
// 使用
var isNanPonyfill = require('is-nan-ponyfill');

isNanPonyfill(5);

0x003 prollyfill

注意:这里主要来自上面第 3 篇文章,但是我觉得原文语义好像有问(prollyfill 写成 polyfill?)。

prollyfill 表示一个还未标准化的 API,它虽然现在不再规范中,但是将来会支持。

比如,我希望JSON.save或者JSON.load 成为原生方法,但是现在不在。尽管你可以使用 JSON Future pollyfill。

0x004 带货

帮大佬带货:随心秀-微场景编辑器