zoukankan      html  css  js  c++  java
  • ES6学习笔记(3)- 对象的功能性扩展

    一、什么是对象字面量

    对象字面量就是创建对象(Object)的一种简单容易理解的方式,再通俗点就是所谓的键值对的集合。举个简单的例子:

    let book = {
        name: 'JavaScript',
        price: 12,
    };
    

     但是对象字面量存在一点小问题,那就是再创建对象的时候需要对属性的值(如上面的name和price)进行初始化,此时会造成一定的重复。将上面的代码改成如下形式就会体现出这个问题所在:

    function getBook(bookName, price) {
        return {
            bookName: bookName,
            price: price,
            getBookName: function() {
                console.log(bookName);
            }
        };
    }

    可以看出函数内部返回一个对象,属性名称和函数的形参相同,而bookName和price都是重复的书写,这样子对编码的效率也是极为低下的。ES6对该种方式做了一定的扩展使其消除了属性名称和局部变量之间的重复书写。当一个本地变量和对象属性同名的时候,不需要再以键值对的方式书写,而是可以简化为如下的方式:

    function getBook(bookName, price) {
        return {
            bookName: bookName,
            price: price,
            getBookName() {
                console.log(bookName);
            }
        };
    }
    

    注意:上述的函数的书写方式也一样被简化了。

    二、全等运算符(===)和Object.is()方法

    在JS中比较两个值时,可能习惯使用相等运算符(==)或者全等运算符(===)来执行相应的语句,但是就算全等运算符也不一定完全准确,一个比较常见的例子就是:

    console.log('NaN === NaN: ' + (NaN === NaN));  // 返回false
    

    ES6中引入了Object.is()方法来弥补全等运算符的不准确性,下面是一些实际的使用方法:

    console.log(Object.is(NaN, NaN));  // return true
    console.log(Object.is(5, '5'));  // return false
    console.log(Object.is(5, 5));   // return true
    

     

  • 相关阅读:
    [导入]在.NET下如何实现密码Hash化
    [导入]强大的.NET反编译工具Reflector及插件
    [导入]XML数据岛(XML Data Island)
    验证视图状态 MAC 失败。处理办法
    ASP.NET格式化字符串
    .NET 开发框架技术资料搜集
    网页中图片大小自动调整三种方法
    用户 'azhk' 登录失败。原因: 未与信任 SQL Server 连接相关联。
    jstl及el表达式笔记
    杰普Core Java课程笔记1
  • 原文地址:https://www.cnblogs.com/jielongAI/p/13875874.html
Copyright © 2011-2022 走看看