JavaScript基础--对象

发布时间:2024年01月08日

一、什么是对象?

世间万物皆为对象

电脑:
特征:内存、颜色、牌子、尺寸……
行为:打游戏、敲代码、看视频、网上冲浪……

二、js中的对象:

      1、将现实实物的抽象
            对象属性==实物特征    对象方法==实物行为    对象的方法其实是一种特殊的对象的属性,属性值是函数类型的
      2、无序属性的集合(属性名重复会发生覆盖)

三、创建对象的方式:

1、字面量创建对象
2、new Object()
3、工厂模式
4、构造函数

      行为==方法==函数

四、对象中属性值的获取和方法的调用

      对象.属性
      对象.方法()
    // 1、
    var car = {
      // key:value
      // 属性名:属性值
      color: '黑色的',
      code: 123456,
      size: '5米',
      size: '6米',
      // 方法名(属性名)
      run: function () {
        console.log('汽车会行驶')
      },
      stop: function () {
        console.log('汽车会驻车')
      },
    }
    console.log(car)
    console.log(typeof car) //object
    console.log(car.color) //黑色的
    console.log(car.code) //123456
    console.log(car.size) //5米
    car.run() //汽车会行驶
    car.stop() //汽车会驻车
    // 2、人
    var person = new Object()
    console.log(person)
    person.name = '小花'
    person.age = 18
    person.age = 19
    person.sex = '女生'
    person.playBaskectball = function () {
      console.log(this.name + '喜欢打篮球')
    }
    console.log(person.name)
    console.log(person.age)
    console.log(person.sex)
    person.playBaskectball()
    // 3、
    function createPerson(name_1, age, sex, playBaskectball) {
      var person = new Object()
      person.name = name_1
      person.age = age
      person.sex = sex
      person.playBaskectball = playBaskectball
      return person
    }
    var p1 = createPerson('小明', 10, '男生', function () {
      console.log('打篮球')
    })
    console.log(p1)
    var p2 = createPerson('喜羊羊', 2, '男生', function () {
      console.log('喜欢打灰太狼')
    })
    console.log(p2)
    p2.playBaskectball()
    // 4、
    /* 
      构造函数:
          1、函数
          2、模版
          3、一般让函数名的首字母大写

      new关键字的作用 
          1、创建出新对象==构造函数的实例化
          2、让构造函数中的this指向实例化对象
    */
    function Person(name, age) {
      this.name = name
      this.age = age
      this.eat = function () {
        console.log('喜欢吃零食!')
      }
    }
    //实例化对象p_1
    var p_1 = new Person('小刚', 12)
    console.log(p_1)
    console.log(p_1.name)
    console.log(p_1.age)
    p_1.eat()
    var p_2 = new Person('小丽', 20)
    console.log(p_2)
    /* 
      五、函数中this的指向问题
          1、在构造函数中this指向实例化对象
          2、在自定义普通对象的方法中this指向当前对象
          3、在普通函数中this指向window
    */
    var ball = '足球'
    function demo1() {
      console.log(ball) //足球
      console.log(window.ball) //足球
      console.log(this.ball) //足球
      console.log(this) //Window
    }
    demo1()
    // 六、对象的遍历     for……in
    for (x in p_1) {
      // 属性名和方法名
      console.log(x)
      // 在对象的循环遍历中不能通过打点的方式获取属性值
      // console.log(p_1.x);
      console.log(p_1[x])
    }
文章来源:https://blog.csdn.net/du_cr/article/details/135412114
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。