es6学习-9

Symbol在对象中的作用

  通过场景应用的方式学习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(d));

 Symbol的打印

  我们先声明一个Symbol,然后我们在控制台输出一下。

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

  这时候我们仔细看控制台是有区别的,没有toString的是红字,toString的是黑字。

 Symbol在对象中的应用

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

var jspang = Symbol();
var obj={
    [jspang]:'技术胖'
}
console.log(obj[jspang]);
obj[jspang]='web';
console.log(obj[jspang]);

 Symbol对象元素的保护作用

  在对象中有很多值,但是循环输出时,并不希望全部输出,那我们就可以使用Symbol进行保护。

  没有进行保护的写法:

var obj={name:'jspang',skill:'web',age:18};
 
for (let item in obj){
    console.log(obj[item]);
}

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

let obj={name:'jspang',skill:'web'};
let age=Symbol();
obj[age]=18;
for (let item in obj){
    console.log(obj[item]);
} 
console.log(obj);

猜你喜欢

转载自www.cnblogs.com/xiaofandegeng/p/9049186.html