对象

如果 a.b ,那么a就是对象,b是a的属性

如果 a.c(),那么a就是对象,c是a的方法

对象就是拥有一组属性和方法的集合

定义对象有两种方式:1.采用字面量赋值方式直接定义。2.采用构造函数的方式new一个对象

1.采用字面量赋值方式定义对象

let obj={

        //定义属性

        //定义方法

}

通过对象名.属性,调用对象的属性,可以获取属性的值,也可以修改属性的值,也可以添加新的属性

通过对象名.方法(),调用对象的方法,执行方法里面的代码

2.采用构造函数的方式new一个对象

可以直接new一个Object对象

let    obj = new    Object()

可以定义一个构造函数,再出new这个构造函数的对象

构造函数也称为:类,是自定义的一种类型

//定义学生类

functionStudent(形参...){

        //定义属性(必须使用this.)

        //定义方法(必须使用this.)

}

//创建学生对象

let    s1 = new    Student (实参...)

3.对象进阶


this

构造函数里面的this,用于给类定义成员(属性和方法)

方法里面的this,指向方法的调用者

箭头函数中没有this,如果在箭头函数中使用了this,会向外层寻找this的指向

如果所有的外层都没有this,最终会指向window对象

注意:用于var定义的成员(变量和方法)都会成为window对象的成员

解决this指向问题:

方式一:备份this

方式二:使用箭头函数

call apply bind

call apply bind 更改方法里面this的指向

1.使用call()改变方法里面,this的指向call()方法的第一个参数必须是指定的对象,方法的原有参数,挨个放在后面

2.使用apply(),也可以改变方法里面this的指向,第一个参是指定的对象,方法的原有参数,统一放到第二个数组参数中。

3.使用bind(),也可以改变方法里面this的指向,用法给call()一样call()是直接运行方法,bind()是返回新的方法,然后再重新调用。

将一个对象转为字符串

获取对象的属性值,有两种方式:

1.对象名.属性名

2.对象名["属性名"]

//定义一个手机对象

    letphone={

            name:"小米10",

            color:'红色',

            size:'1000*200*500',price:'2999'

  }

//转成下面的字符串

//"name=小米10&color=红色&size=1000*200*500&price=2999"

for in 循环,可以循环出对象里面的所有的key,(key就是属性名)

在ES6中新增了获取对象所有key的方法 -> ECMAScript2015 其实就是最新版本的javascript标准

Object.keys(指定的对象),该方法可以获取指定对象的所有key,返回值是一个数组

Object.values(指定的对象),该方法可以获取指定对象的所有的value,返回值是一个数组

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、面向对象 什么是对象 程序中描述现实中一个具体事物的属性和方法的结构。其本质就是,在内存中保存多个属性和方法的...
    飞鸿踏雪ni阅读 1,345评论 0 0
  • 对象,即一组数据的有规律,有属性方法的集合,从构成来看有两组构成方式:字面量,和New构造, let singer...
    青木樹海阅读 1,651评论 0 0
  • 面向对象 * 单利模式 * 工厂模式 * 构造函数模式 * 原型模式 * call,apply,bind * 继承...
    web前端ling阅读 1,631评论 0 1
  • 一、实验目的 类 继承 方法重写 对象 属性 二、知识要点 1.类 用来描述具有相同的属性和方法的对象的集合。它定...
    小哲1998阅读 2,540评论 0 0
  • 博客内容:什么是面向对象为什么要面向对象面向对象编程的特性和原则理解对象属性创建对象继承 什么是面向对象 面向对象...
    _Dot912阅读 5,278评论 3 12