最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ES6 Symbol在對(duì)象中的作用實(shí)例分析

 更新時(shí)間:2020年06月06日 09:01:44   作者:WFaceBoss  
這篇文章主要介紹了ES6 Symbol在對(duì)象中的作用,結(jié)合實(shí)例形式分析了ES6 Symbol在對(duì)象中聲明、使用方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了ES6 Symbol在對(duì)象中的作用。分享給大家供大家參考,具體如下:

在ES5中 對(duì)象屬性名都是字符串,這容易造成屬性名的沖突,比如,你使用了一個(gè)他人提供的對(duì)象,但又想為這個(gè)對(duì)象添加新的方法(mixin 模式),新方法的名字就有可能與現(xiàn)有方法產(chǎn)生沖突,于是 ES6 引入了Symbol。Symbol是一種新的原始數(shù)據(jù)類型,表示獨(dú)一無(wú)二的值。它是繼undefined、null、布爾值(Boolean)、字符串(String)、數(shù)值(Number)、對(duì)象(Object)六種數(shù)據(jù)類型之后的第七種數(shù)據(jù)類型。凡是屬性名屬于 Symbol 類型,就都是獨(dú)一無(wú)二的,可以保證不會(huì)與其他屬性名產(chǎn)生沖突。

1.聲明Symbol

Symbol函數(shù)可以接受一個(gè)字符串作為參數(shù),表示對(duì) Symbol 實(shí)例的描述,主要是為了在控制臺(tái)顯示,或者轉(zhuǎn)為字符串時(shí),比較容易區(qū)分。

var f= Symbol();//Symbol()
var f= Symbol('foo');//Symbol(foo)

// 沒(méi)有參數(shù)的情況
let s1 = Symbol();
let s2 = Symbol();
s1 === s2 // false

// 有參數(shù)的情況
let s1 = Symbol('foo');
let s2 = Symbol('foo');

s1 === s2 // false

注意,Symbol函數(shù)的參數(shù)只是表示對(duì)當(dāng)前 Symbol 值的描述,因此相同參數(shù)的Symbol函數(shù)的返回值是不相等的。

s1和s2都是Symbol函數(shù)的返回值,而且參數(shù)相同,但是它們是不相等的。

2.Symbol在對(duì)象中的應(yīng)用

Symbol作為屬性名:

let mySymbol = Symbol();

// 第一種寫法
let a = {};
a[mySymbol] = 'Hello!';

// 第二種寫法
let a = {
 [mySymbol]: 'Hello!'
};

// 第三種寫法
let a = {};
Object.defineProperty(a, mySymbol, { value: 'Hello!' });

// 以上寫法都得到同樣結(jié)果
a[mySymbol] // "Hello!"

賦值-括號(hào)形式:

a[mySymbol]='web';

3.Symbol對(duì)象元素的保護(hù)作用

在對(duì)象中有很多值,但是循環(huán)輸出時(shí),并不希望全部輸出,那我們就可以使用Symbol進(jìn)行保護(hù)。

沒(méi)有進(jìn)行保護(hù)的寫法:

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

現(xiàn)在我不想別人知道我的年齡,這時(shí)候我就可以使用Symbol來(lái)進(jìn)行循環(huán)保護(hù)。

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

感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運(yùn)行工具http://tools.jb51.net/code/HtmlJsRun測(cè)試上述代碼運(yùn)行效果。

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《javascript面向?qū)ο笕腴T教程》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)

希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論

弥勒县| 饶阳县| 汨罗市| 东光县| 昌乐县| 新余市| 诸城市| 柳河县| 碌曲县| 阳西县| 西丰县| 汉阴县| 绵阳市| 永新县| 本溪| 蓬莱市| 花莲市| 安陆市| 中超| 莱西市| 澄江县| 阿克苏市| 瑞昌市| 阳信县| 金堂县| 衡阳市| 临洮县| 板桥市| 新营市| 奇台县| 安顺市| 宜宾县| 长宁县| 得荣县| 邛崃市| 西乌珠穆沁旗| 拜城县| 兰州市| 绵竹市| 柘城县| 吕梁市|