Compare commits

...

2 Commits

Author SHA1 Message Date
yutent 22bb09a407 2.4.3:更新文档 2024-09-29 15:08:45 +08:00
yutent e91ce6387a fixed define 2024-09-29 15:05:05 +08:00
7 changed files with 29 additions and 14 deletions

View File

@ -1,3 +1,8 @@
2.4.3 / 2024-09-29
==================
* 修复`Object.defineProperty`定义声明
* 增加`Promise.withResolvers`
2.4.2 / 2024-09-12 2.4.2 / 2024-09-12
================== ==================
* 优化字符串转义 * 优化字符串转义

View File

@ -7,8 +7,8 @@
```js ```js
├── Obejct ├── Obejct
── .empty(any) // 判断对象是否为空对象 ── .empty(any) // 判断对象是否为空对象
── .groupBy(arr, fn) // 数组分组, 返回分组后的对象 ── .groupBy(arr, fn) // 数组分组, 返回分组后的对象
│ └── .hasOwn(any, key) // 安全版的 Object.prototype.hasOwnProperty() │ └── .hasOwn(any, key) // 安全版的 Object.prototype.hasOwnProperty()
├── Obejct.prototype ├── Obejct.prototype
│ └── .toParams() // 把对象转为 key1=value1&key2=value2 格式 │ └── .toParams() // 把对象转为 key1=value1&key2=value2 格式
@ -64,10 +64,11 @@
│ ├── .parse(str) // 将安全范围内的数字字符串转为数字类型 │ ├── .parse(str) // 将安全范围内的数字字符串转为数字类型
│ └── .fromString(str) // 将字符串转为数字类型 │ └── .fromString(str) // 将字符串转为数字类型
├── Number.prototype ├── Number.prototype
── .toFixed(digits) // 修正版的toFixed ── .toFixed(digits) // 修正版的toFixed
└── Promise └── Promise
└── .defer() // 创建一个延迟的Promise对象 ├── .defer() // 创建一个延迟的Promise对象
└── .withResolvers() // 创建一个延迟的Promise对象, 同defer
``` ```

View File

@ -1,6 +1,6 @@
{ {
"name": "es.shim", "name": "es.shim",
"version": "2.4.2", "version": "2.4.3",
"description": "实现部分新API, 以及一些常用的扩展方法", "description": "实现部分新API, 以及一些常用的扩展方法",
"keyworks": [ "keyworks": [
"es5", "es5",

View File

@ -17,13 +17,15 @@ Object.defineProperty(Array.prototype, 'flat', {
} }
return arr return arr
} },
writable: true
}) })
Object.defineProperty(Array.prototype, 'flatMap', { Object.defineProperty(Array.prototype, 'flatMap', {
value(fn) { value(fn) {
return this.map(fn).flat() return this.map(fn).flat()
} },
writable: true
}) })
if (!Array.prototype.at) { if (!Array.prototype.at) {

View File

@ -10,7 +10,8 @@ const NATIVE_TO_FIXED = Number.prototype.toFixed
Object.defineProperty(Number.prototype, 'toFixed', { Object.defineProperty(Number.prototype, 'toFixed', {
value(n) { value(n) {
return NATIVE_TO_FIXED.call(this + Number.EPSILON, n) return NATIVE_TO_FIXED.call(this + Number.EPSILON, n)
} },
writable: true
}) })
// 简单的数字处理 // 简单的数字处理

View File

@ -4,7 +4,7 @@
*/ */
if (!Promise.defer) { if (!Promise.defer) {
Promise.defer = function() { Promise.defer = function () {
let obj = {} let obj = {}
obj.promise = new Promise((resolve, reject) => { obj.promise = new Promise((resolve, reject) => {
obj.resolve = resolve obj.resolve = resolve
@ -13,3 +13,7 @@ if (!Promise.defer) {
return obj return obj
} }
} }
if (!Promise.withResolvers) {
Promise.withResolvers = Promise.defer
}

View File

@ -101,8 +101,10 @@ if (!Set.prototype.union) {
} }
// 判断2个集合是否一致(仅元素相同, 无关顺序) // 判断2个集合是否一致(仅元素相同, 无关顺序)
Object.defineProperty(Set.prototype, 'equals', { if (!Set.prototype.equals) {
value(other) { Object.defineProperty(Set.prototype, 'equals', {
return this.size === other.size && this.isSubsetOf(other) value(other) {
} return this.size === other.size && this.isSubsetOf(other)
}) }
})
}