JavaScript基础过关第四天

时间:2021-09-14 14:45:46

JavaScript基础过关第四天

对象

  • 创建对象的三种方法

    • 法一:调用系统的构造函数创建对象
    var 对象名称=new Object();//Object()就是系统的构造函数,该方法是在实例化一个对象
    对象名称.name="...";//属性
    对象名称.eat=function(){
        ....
    }//方法
    • (类似)通过字面量的方式创建对象

      var 对象名称={};//相当于var 对象名称=new Object();
      对象名称.name="...";//属性
      对象名称.eat=function(){
          ....
      }//方法
      
      //优化后的写法
      var 对象名称={
          name:"..";
          age:..;
          eat:function(){
          ....
      }
      }

      缺点:只能一次性创建对象,如果想改变属性的值只能在源码修改


    • 如何获取该变量(对象)是不是属于什么类型的
    变量 instanceof 类型的名字

    ​ true是这种类型,false不是(类似于typeof)


    • 法二:工厂模式创建对象

      • 思路:将创建对象的过程封装成一个函数
      • 好处:可以批量生成对象,并且指定属性或者方法
      function createObject(name,age){
          var obj=new Object();
          obj.name=name;
          obj.age=age;
          obj.sayHi=function(){
              console.log("我得名字是"+this.name+"我今年"+this.age);
          }
          return obj;
      }
      var per1=createObject("小芳",20);
      per1.sayHi();

    • 法三:自定义构造函数创建对象

      • 函数与构造函数的区别:构造函数的名字首字母大写

      • 思路:自己写一个构造函数代替之前的系统构造函数Object();

      •   function Person(name,age){//自定义构造函数创建对象
           this.name=name;
           this.age=age;
           this.sayHi=function(){
               console.log("我得名字是"+this.name+"我今年"+this.age);
           }
          }
          var per1=new Person("jack",10);//利用自定义构造函数
          console.log(per1.name);//jack
          console.log(per1.age);//10
          console.log(per1.sayHi());//我得名字是jack我今年10岁

JSON

  • 格式
var json={
    "name":"haha",
    "age":"10",
    "sex":"男"
} 
  • 遍历

    通过for-in循环遍历json对象

for(var key in json){
    console.log(key);//key="name"...    
    console.log(json[key]);//不能json.key,因为json对象中并没有key这个属性
}