1.1.7 • Published 4 years ago

imitate-symbol v1.1.7

Weekly downloads
3
License
MIT
Repository
github
Last release
4 years ago

NPM version NPM Weekly Downloads License

imitate-symbol

简单的模拟 Symbol 的功能,与 Symbol 的逻辑比较类似,但是 imitate-symbol 返回的是一个随机的唯一 uuid。

实例

import iSymbol from "imitate-symbol";

var val = iSymbol("val");
console.log(val); // 8039bc24-52f0c187-1fd1-4695-99a1-3f0657e61642
console.log(iSymbol.for("val")); // 8039bc24-52f0c187-1fd1-4695-99a1-3f0657e61642
console.log(iSymbol.keyFor(val)); // val

API

iSymbol(name?);

生成一个 uuid

var val = iSymbol("val");

name

Type: String

一个标识 uuid 的名字,可以不输入

iSymbol.for(name);

查找标识为 name 的 uuid,如果没有就返回一个新生成的 uuid,并将其标识为 name

iSymbol.for("val");

name

Type: String

一个标识 uuid 的名字,必须输入

iSymbol.keyFor(val);

查找 uuid 的标识名,如果没有就返回空字符串

iSymbol.keyFor(val);

val

Type: String

uuid 的值,必须输入

iSymbol.is(val);

判断 uuid 是否由 iSymbol 生成

iSymbol.is(val);

val

Type: String

uuid 的值,必须输入

iSymbol.setVal(obj, key, value);

将对象 obj 的 key 属性的值设置为 value, 和原生 Symbol 属性一样, key 属性不可以枚举,但可以删除和重新赋值

iSymbol.setVal({}, "val", "some value");

obj

Type: Object

要设置值的对象

key

Type: String

要设置的属性名

value

Type: any

要设置的属性值

例子

var obj = {
    key: "key value",
};
iSymbol.setVal(obj, "val", "val value");
console.log(obj[iSymbol.for("val")]); // val value
console.log(JSON.stringify(obj)); // {"key":"key value"}
1.1.7

4 years ago

1.1.6

4 years ago

1.1.5

4 years ago

1.1.4

4 years ago

1.1.3

4 years ago

1.1.2

4 years ago

1.1.1

4 years ago

1.1.0

4 years ago

1.0.9

4 years ago

1.0.8

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago

1.0.3

4 years ago

0.0.9

4 years ago

0.0.8

4 years ago

0.0.5

4 years ago

0.0.7

4 years ago

0.0.6

4 years ago

0.0.3

4 years ago

0.0.4

4 years ago

0.0.2

4 years ago

0.0.1

4 years ago