Symbol 在对象中的作用

Symbol 声明

先来看一下数据类型,在最后看看Symbol如何声明,并进行一个数据类型的判断。


var a = new String;
var b = new Number;
var c = new Boolean;
var d = new Array;
var e = new Object;
var f = Symbol();
console.log(typeof (f)); // 控制台输出 Symbol

Symbol 的打印


var g = Symbol('zhai');
console.log(g);
console.log(g.toString());

控制台输出的区别:没有 toString() 的是红字,toString() 的是黑字。

Symbol 在对象中的应用

如何用Symbol构建对象的Key,并调用和赋值


var h = Symbol();
var obj = {
    [h]: 'a'
}
console.log(obj[h]); // 控制台输出 a
obj[h] = 'b';
console.log(obj[h]); // 控制台输出 b

Symbol 对象元素的保护作用

后台返回的对象中有很多的值,但是循环输出时,并不希望全部输出。可以使用Symbol 进行保护。
没有进行保护


var obj2 = { name: '张三', skill: 'web java', age: 18 };
for (let item in obj2) {
    console.log(obj2[item]); // 控制台输出 张三、 web java、 18
}

现在不想让别人知道年龄,这时候就可以用Symbol来进行保护。


var obj3 = { name: '张三', skill: 'web java' };
let age = Symbol();
obj3[age] = 18;
for (let item in obj3) {
    console.log(obj3[item]); // 控制台输出 张三、 web java
}

你可能感兴趣的:(Web)