美文网首页工作生活
对象的扩展(笔记)

对象的扩展(笔记)

作者: 灰灰_82a6 | 来源:发表于2019-07-10 13:14 被阅读0次

属性的简写

1.属性值可以是一个变量或者函数,并且当属性值与属性名一样的时候,只写属性名即可。

var foo="bar";
var obj={foo}; 
//等同于
var var obj={foo:foo};  //{foo:"bar"}

2.方法的简写

var obj={
  method(){}
}
//等同于
var obj={
  method:function(){}
}

属性的表达式

字母式声明对象的时候 ,属性名可以放在[]里,即可以使用变量或者表达式

let lastWord = 'last word';

const a = {
  'first word': 'hello',
  [lastWord]: 'world'
};

a['first word'] // "hello"
a[lastWord] // "world"
a['last word'] // "world"

也可以定义方法

let obj = {
  ['h' + 'ello']() {
    return 'hi';
  }
};

obj.hello() // hi

super

1.super指向当前对象的原型对象。

const proto = {
  foo: 'hello'
};

const obj = {
  foo: 'world',
  find() {
    return super.foo;
  }
};

Object.setPrototypeOf(obj, proto);
obj.find() // "hello"

2.super关键字表示原型对象时,只能用在对象的方法之中,用在其他地方都会报错。

对象的扩展运算符

1.对象的解构赋值是浅拷贝
2.扩展运算符的解构赋值,不能复制继承自原型对象的属性

let o1 = { a: 1 };
let o2 = { b: 2 };
o2.__proto__ = o1;
let { ...o3 } = o2; //把o2的自身的属性赋值给了o3,原型上的没有赋给
o3 // { b: 2 }
o3.a // undefined

3.使用...可以取出对象的所有可遍历属性。

let z = { a: 3, b: 4 };
let n = { ...z };
n // { a: 3, b: 4 }

上面的let n = { ...z }等同于如下:

let n= Object.assign({}, z);

4.如果扩展运算符后面是一个空对象,则没有任何效果。

{...{}, a: 1}
// { a: 1 }

5.如果扩展运算符后面不是对象,则会自动将其转为对象

// 等同于 {...Object(1)}
//扩展运算符后面是整数1,会自动转为数值的包装对象Number{1}。由于该对象没有自身属性,所以返回一个空对象。
{...1} // {}

如果扩展运算符后面是字符串,它会自动转成一个类似数组的对象

{...'hello'}
// {0: "h", 1: "e", 2: "l", 3: "l", 4: "o"}

相关文章

  • 对象的扩展(笔记)

    属性的简写 1.属性值可以是一个变量或者函数,并且当属性值与属性名一样的时候,只写属性名即可。 2.方法的简写 属...

  • 阮一峰es6要点总结——数值的扩展

    笔记,完全摘录自阮一峰 1. 扩展Number内置对象上的方法 扩展方法 原全局方法,现挂载到Number对象,避...

  • 四: ES6 对象扩展

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

  • 21

    json:(字符串)数据传输格式XML:可扩展笔记语言json 对象:json字符串解析出来的对象。或者就是个对象...

  • 2018-11-21

    json:(字符串) 数据传输格式 XML: 可扩展笔记语言 json 对象: json字符串解析出来的对象。或者...

  • JQuery插件

    类扩展: 对象扩展:

  • 《ECMAScript 6 入门》笔记

    变量的解构赋值 字符串的扩展 正则的扩展 数值的扩展 函数的扩展 数组的扩展 对象的扩展 对象的新增方法 表单验证...

  • 对象的扩展

    属性的简洁表示法 ES6 允许直接写入变量和函数,作为对象的属性和方法。这样的书写更加简洁。 Object.is(...

  • 对象的扩展

    对象的扩展 属性和方法简写 var foo ='bar' var baz = {foo} <=> va...

  • 对象的扩展

    1、属性方法的简洁表示 属性简写 var foo='foo'; var goo= {'foo':foo};可以写成...

网友评论

    本文标题:对象的扩展(笔记)

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