JS基础(对象)

1.什么是对象

对象是一个具体的对象,看得见摸得着的实物。

  • 在js中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,类如字符串、数值、数组、函数等

2. 创建对象的三种方式

  1.   字面量:键值对方式创建

    1.    获取:对象名.属性名、对象名['属性名'] 、对象名.方法名()
          var obj = {
            uname: "村下春草",
            age: "18",
            sex: "男",
            // 对象的键值对是冒号
            sayHi: function () {
              console.log("嗨");
            },
          };
          console.log(obj.uname);
          console.log(obj["age"]);
          obj.sayHi();

  2. 利用newObject创建对象

          var obj = new Object();
          obj.name = "村下春草";
          obj.sex = "男";
          obj.age = "18";
          obj.skill = "影分身";
          console.log(obj.name);

  3. 构造函数创建对象:搭配this创建

    1. 调用时候需要new一下:开辟独立新的空间

          function Star(uname, age, sex) {
            this.name = uname;
            this.age = age;
            this.sex = sex;
          }
          new star("刘德华", 18, "男");

3. 变量、属性、方法、函数的区别 

变量 属性
存储数据 存储数据
变量单独声名并且赋值,调用直接写变量名(单独存在) 属性不需要声名,使用时候是 对象名.属性名

函数 方法
作用 实现某种功能 实现某种功能
调用 函数名() 对象名.函数名()

 

4.案例:实现构造函数

 

    function Hero(uname, blood, type) {
      this.name = uname;
      this.blood = blood;
      this.type = type;
      this.attacks = function (attack) {
        console.log(attack);
      };
    }
    //new一个构造函数
    var houYi = new Hero("后裔", "100血量", "射手型");
    console.log(houYi);
    console.log(houYi.name);
    console.log(houYi["blood"]);
    houYi.attacks("远程");
//-----------------------------------
    var lianPo = new Hero("廉颇", "500血量", "力量型");
    console.log(lianPo);
    console.log(lianPo.name);
    console.log(lianPo["blood"]);
    lianPo.attacks("近距");

5. 解释new关键字 

1.new构造函数可以在内存中创建一个空的对象
2.this都会指向这个开辟的空对象
3.接着执行构造函数里面的代码
4.给这个空对象添加属性和方法
5.最后返回这个对象

JS基础(对象)_第1张图片

 

 6. 遍历对象

使用:for(var k in 对象名)

    var obj = {
      name: "haha",
      age: 18,
      sex: "男",
      fn: function () {},
    };
    for (var k in obj) {
      console.log(k); //k是变量:得到属性名
      console.log(obj[k]); //k是变量:得到属性值
    }

你可能感兴趣的:(javascript,开发语言,ecmascript)