美文网首页es6
深入理解ES6之对象

深入理解ES6之对象

作者: IDO0 | 来源:发表于2018-03-08 14:17 被阅读0次

一:对象的属性

1:属性速记法

//之前
function createPerson(name,age){
  return {
     name:name,
     age:age
  }
}
var person = {
    name="hahah",
    sayName:function(){
 }
}

//ES6
function createPerson(name,age){
  return {
     name,
     age
  }
}
var person = {
    name="hahah",
    sayName(){
 }
}

2:属性可以通过.或者[]引用内部属性
[]方括号允许你将变量或者字符串字面量指定为属性名

var person = {};
var lastName = "last name";
console.log(person[lastName]);

3:重复属性覆盖,后一个会覆盖前一个同名属性
4:属性枚举时定义了规则
所有的数字类型键,按照升序排列;所有的字符串类型键,按照添加到对象的顺序排列;所有的符号类型,按照添加到对象的顺序排列;

var obj={
a:1,
0:1,
c:1,
2:1,
b:1,
1:1
}
obj.d=1;
console.log(Object.getOwnPropertyNames(obj).join(""));//"012acbd"

二:对象的方法

1:方法定义

let person ={
//方法
getGreeting(){
   return "hello"
}

//并非方法
function shareGreeting(){
    return "Hi";
 }
}
//方法里面可以使用super 非方法不能使用super

2:新增方法
Object.is()比较两个对象值是否相等;
Object.assign()混入用于一个对象从另一个对象中接收属性方法,但是并未在在接收者上创建访问器属性,供应者拥有访问器属性。

三:原型与super

1:原型可以改变
ES6通过添加Object.setPortotypeOf()方法可以运行修改任意指定对象的原型。

let person = {
  getGreeting(){
    return "hello"
  }
}
let dog = {
  getGreeting(){
    return "woof"
  }
}

let friend = Object.create(person);
console.log(friend.getGreeting())// "hello"

Object.setPrototypeOf(friend,dog);
console.log(friend.getGreeting())// "woof"
console.log(Object.getPrototypeOf(friend)===dog); // true

2:super关键字
super关键字可以调用原型上面的方法,所调用的方法会被设置好内部的this绑定,以自动使用this值来进行工作。

相关文章

  • 深入理解ES6之对象

    一:对象的属性 1:属性速记法: 2:属性可以通过.或者[]引用内部属性:[]方括号允许你将变量或者字符串字面量指...

  • 对象解构

    《深入理解ES6》阅读随笔 在 ES6 中,对于解构对象做了一系列改进,使其用起来更加方面。 提取对象字面量:在 ...

  • 一些常用的代理陷阱函数(六)

    《深入理解ES6》阅读随笔 数组代理 在 ES6 之前,在 JavaScript 中是无法直接创建数组对象的,但是...

  • ES6 扩展的对象功能性

    本文来自深入理解ES6 对象类别 普通对象: 具有js对象所有默认内部行为特异对象: 具有某些与默认行为不符的内部...

  • 一些常用的代理陷阱函数(三)

    《深入理解ES6》阅读随笔 属性描述符陷阱 在 JavaScript 中,对象有 defineProperty 和...

  • 四: ES6 对象扩展

    前言 该部分为书籍 深入理解ES6 第四章(扩展的对象功能)笔记 对象类别 对象类别包括: 普通对象: 拥有 JS...

  • 强化原型(二)

    《深入理解ES6》阅读随笔 Super 的应用 在实例化对象以后,如果还想修改对象的方法,可以这么操作: 这里使用...

  • 深入理解ES6 --- 对象

    对象字面量语法扩展 (1) 属性初始值简写 为对象字面量属性赋值为同名的局部变量时,不必再写: 和值,只写属性名即...

  • 对象扩展后的一些变化

    《深入理解ES6》阅读随笔 在 JavaScript 中,有一切皆为对象之说,可见其重要性。关于对象的扩展,这里简...

  • ES5和ES6中的this问题及注意事项(附带少许作用域链查找知

    本文参考以下文章: 1、深入理解ES6箭头函数的this以及各类this面试题总结 2、深入理解ES6箭头函数中的...

网友评论

    本文标题:深入理解ES6之对象

    本文链接:https://www.haomeiwen.com/subject/olzefftx.html