Symbol理解

主要用于给对象添加属性时防止key值重复,导致的属性覆盖。

    const a = Symbol('a'); // 可成Sring和Boolean类型
	const b = Symbol('a');
	const c = 'b';
	const d = 'b';

	const obj = {
		a: 1
	};
	obj[a] = 1;
	obj[b] = 1;
	obj[c] = 1;
	obj[d] = 1;

    // obj的值	
	// a: 1
	// b: 1
	// Symbol(a): 1
	// Symbol(a): 1

	// Symbol.for 使用同一个Symbol的值,先全局查找有没有该为'key'的Symbol,有则返回该值,没有则新建。
	const e = Symbol.for('key');
	const f = Symbol.for('key');
	f === e; // true
	
	// Symbol.keyFor 获取key值
	Symbol.keyFor(e); // "key"
	

猜你喜欢

转载自blog.csdn.net/ligaoming_123/article/details/83585814