欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

ECMAScript 6對(duì)象的擴(kuò)展實(shí)現(xiàn)示例

 更新時(shí)間:2022年08月17日 10:58:16   作者:RiemannHypothesis  
這篇文章主要為大家介紹了ECMAScript 6對(duì)象的擴(kuò)展實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

屬性的簡潔表示法

對(duì)象(object)是 JavaScript 最重要的數(shù)據(jù)結(jié)構(gòu)。ES6 對(duì)它進(jìn)行了重大升級(jí)

ES6 允許在大括號(hào)里面,直接寫入變量和函數(shù),作為對(duì)象的屬性和方法。這樣的書寫更加簡潔。

const foo = 'bar';
const baz = {foo};
baz // {foo: "bar"}
// 等同于
const baz = {foo: foo};

上面代碼中,變量foo直接寫在大括號(hào)里面。這時(shí),屬性名就是變量名, 屬性值就是變量值。下面是另一個(gè)例子。

function f(x, y) {
  return {x, y};
}
// 等同于
function f(x, y) {
  return {x: x, y: y};
}
f(1, 2) // Object {x: 1, y: 2}

下面是一個(gè)實(shí)際的例子。

let birth = '2000/01/01';
const Person = {
  name: '張三',
  //等同于birth: birth
  birth,
  // 等同于hello: function ()...
  hello() { console.log('我的名字是', this.name); }
};

CommonJS 模塊輸出一組變量,就非常合適使用簡潔寫法。

let ms = {};
function getItem (key) {
  return key in ms ? ms[key] : null;
}
function setItem (key, value) {
  ms[key] = value;
}
function clear () {
  ms = {};
}
module.exports = { getItem, setItem, clear };
// 等同于
module.exports = {
  getItem: getItem,
  setItem: setItem,
  clear: clear
};

屬性名表達(dá)式

JavaScript 定義對(duì)象的屬性,有兩種方法。

// 方法一
obj.foo = true;
// 方法二
obj['a' + 'bc'] = 123;

上面代碼的方法一是直接用標(biāo)識(shí)符作為屬性名,方法二是用表達(dá)式作為屬性名,這時(shí)要將表達(dá)式放在方括號(hào)之內(nèi)。 ES6 允許字面量定義對(duì)象時(shí),用方法二(表達(dá)式)作為對(duì)象的屬性名,即把表達(dá)式放在方括號(hào)內(nèi)。

let propKey = 'foo';
let obj = {
  [propKey]: true,
  ['a' + 'bc']: 123
};

方法的 name 屬性

函數(shù)的name屬性,返回函數(shù)名。對(duì)象方法也是函數(shù),因此也有name屬性。

const person = {
  sayName() {
    console.log('hello!');
  },
};
person.sayName.name   // "sayName"

上面代碼中,方法的name屬性返回函數(shù)名(即方法名)。

對(duì)象的擴(kuò)展運(yùn)算符

《數(shù)組的擴(kuò)展》一章中,已經(jīng)介紹過擴(kuò)展運(yùn)算符(...)。ES2018 將這個(gè)運(yùn)算符引入了對(duì)象。 對(duì)象的解構(gòu)賦值用于從一個(gè)對(duì)象取值,相當(dāng)于將目標(biāo)對(duì)象自身的所有可遍歷的(enumerable)、但尚未被讀取的屬性,分配到指定的對(duì)象上面。所有的鍵和它們的值,都會(huì)拷貝到新對(duì)象上面。

let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
x // 1
y // 2
z // { a: 3, b: 4 }

對(duì)象的新增方法-Object.is()

ES5 比較兩個(gè)值是否相等,只有兩個(gè)運(yùn)算符:相等運(yùn)算符(==)和嚴(yán)格相等運(yùn)算符(===)。它們都有缺點(diǎn),前者會(huì)自動(dòng)轉(zhuǎn)換數(shù)據(jù)類型,后者的NaN不等于自身,以及+0等于-0。JavaScript 缺乏一種運(yùn)算,在所有環(huán)境中,只要兩個(gè)值是一樣的,它們就應(yīng)該相等。 ES6 提出“Same-value equality”(同值相等)算法,用來解決這個(gè)問題。Object.is就是部署這個(gè)算法的新方法。它用來比較兩個(gè)值是否嚴(yán)格相等,與嚴(yán)格比較運(yùn)算符(===)的行為基本一致。

Object.is('foo', 'foo')
// true
Object.is({}, {})
// false

不同之處只有兩個(gè):一是+0不等于-0,二是NaN等于自身。

+0 === -0 //true
NaN === NaN // false
Object.is(+0, -0) // false
Object.is(NaN, NaN) // true

對(duì)象的新增方法-Object.assign()

Object.assign()方法用于對(duì)象的合并,將源對(duì)象(source)的所有可枚舉屬性,復(fù)制到目標(biāo)對(duì)象(target)。

const target = { a: 1 };
const source1 = { b: 2 };
const source2 = { c: 3 };
Object.assign(target, source1, source2);
target // {a:1, b:2, c:3}

以上就是ECMAScript 6對(duì)象的擴(kuò)展實(shí)現(xiàn)示例的詳細(xì)內(nèi)容,更多關(guān)于ECMAScript 6對(duì)象擴(kuò)展的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • JavaScript利用html5新方法操作元素類名詳解

    JavaScript利用html5新方法操作元素類名詳解

    這篇文章主要給大家分享的是JavaScript用html5新方法操作元素類名的詳解,早先JavaScript處理起來特別不方便,需要先取到class屬性,然后對(duì)字符串進(jìn)行處理?,F(xiàn)在html5給所有元素增加了classList屬性來操作類屬性,非常方便,下面就一起來看看具體操作過程吧
    2021-11-11
  • 前端的狀態(tài)管理(上)

    前端的狀態(tài)管理(上)

    這篇文章主要講解前端的狀態(tài)管理,狀態(tài)管理李娜就想到:Vuex、Redux、Flux、Mobx等等方案,不論哪種方案只要內(nèi)容一多起來似乎都是令人頭疼的問題,今天來聊一聊前端的狀態(tài)管理,感興趣的小伙伴可以參考參考下面文字具體內(nèi)容
    2021-10-10
  • 瀏覽器切換到其他標(biāo)簽頁或最小化js定時(shí)器是否準(zhǔn)時(shí)測(cè)試

    瀏覽器切換到其他標(biāo)簽頁或最小化js定時(shí)器是否準(zhǔn)時(shí)測(cè)試

    這篇文章主要為大家介紹了瀏覽器切換到其他標(biāo)簽頁或最小化是js定時(shí)器是否準(zhǔn)時(shí)的測(cè)試詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • 微信小程序中使用Promise進(jìn)行異步流程處理的實(shí)例詳解

    微信小程序中使用Promise進(jìn)行異步流程處理的實(shí)例詳解

    這篇文章主要介紹了微信小程序中使用Promise進(jìn)行異步流程處理的實(shí)例詳解的相關(guān)資料,這里詳細(xì)說明該如何使用Promise 來進(jìn)行異步流程的處理,提供具體實(shí)現(xiàn)步驟,需要的朋友可以參考下
    2017-08-08
  • 微信小程序 switch組件詳解及簡單實(shí)例

    微信小程序 switch組件詳解及簡單實(shí)例

    這篇文章主要介紹了微信小程序 switch組件詳解及簡單實(shí)例 的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • 微信小程序 頁面跳轉(zhuǎn)和數(shù)據(jù)傳遞實(shí)例詳解

    微信小程序 頁面跳轉(zhuǎn)和數(shù)據(jù)傳遞實(shí)例詳解

    這篇文章主要介紹了微信小程序 頁面跳轉(zhuǎn)和數(shù)據(jù)傳遞實(shí)例詳解的相關(guān)資料,這里附有實(shí)例代碼幫助到家學(xué)習(xí)理解,需要的朋友可以參考下
    2017-01-01
  • 微信小程序 刪除項(xiàng)目工程實(shí)現(xiàn)步驟

    微信小程序 刪除項(xiàng)目工程實(shí)現(xiàn)步驟

    這篇文章主要介紹了微信小程序 刪除項(xiàng)目工程實(shí)現(xiàn)步驟的相關(guān)資料,這里對(duì)刪除小程序的步驟進(jìn)行詳解和注意事項(xiàng),需要的朋友可以參考下
    2016-11-11
  • JS中的四種數(shù)據(jù)類型判斷方法

    JS中的四種數(shù)據(jù)類型判斷方法

    js有多種數(shù)據(jù)類型(Number(數(shù)值)、String(字符串)、Boolean(布爾值)、Null、Undefined、Symbol、Object、函數(shù)等),在開發(fā)過程中難免需要判斷數(shù)據(jù)類型,本文總結(jié)了四種判斷方法給大家分享,需要的朋友可以參考一下
    2021-11-11
  • JS算法題解搜索插入位置方法示例

    JS算法題解搜索插入位置方法示例

    這篇文章主要為大家介紹了JS算法題解搜索插入位置方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • 微信小程序中form 表單提交和取值實(shí)例詳解

    微信小程序中form 表單提交和取值實(shí)例詳解

    這篇文章主要介紹了微信小程序中form 表單提交和取值實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-04-04

最新評(píng)論