JavaScript基础(五)

    //创建对象三种方式:
    /*
     *
     * 1.调用系统的构造函数创建对象
     * var 变量名= new Object(); Object 是系统的构造函数  Array
     *
     * 2.自定义构造函数创建对象(结合第一种和需求通过工厂模式创建对象)
     *
     *
     * 3.字面量的方式创建对象
     *
     *
     * */

 

    //第一种创建对象的方式
    //小苏举例子:
    //实例化对象
    var obj = new Object();
    //对象有特征---属性和行为---方法
    //添加属性-----如何添加属性?  对象.名字=值;
    obj.name = "小苏";
    obj.age = 38;
    obj.sex = "女";
    //添加方法----如何添加方法? 对象.名字=函数;
    obj.eat = function () {
      console.log("我喜欢吃油炸榴莲凉拌臭豆腐和大蒜");
    };
    obj.play = function () {
      console.log("我喜欢玩飞机模型");
    };
    obj.cook = function () {
      console.log("切菜");
      console.log("洗菜");
      console.log("把菜放进去");
      console.log("大火5分钟");
      console.log("出锅");
      console.log("凉水过一下");
      console.log("放料,吃");
    };
    console.log(obj.name);//获取--输出了
    console.log(obj.age);
    console.log(obj.sex);
    //方法的调用
    obj.eat();
    obj.play();
    obj.cook();

---------------------------------------------------------------

    /*
     *
     * 如何获取该变量(对象)是不是属于什么类型的?
     * 语法:
     * 变量 instanceof 类型的名字----->布尔类型,true就是这种类型,false不是这种类型
     * 在当前的对象的方法中,可以使用this关键字代表当前的对象
     *
     *
     * */

--------------------------------------------------------------------

    //自定义构造函数创建对象
    //函数和构造函数的区别;名字是不是大写(首字母是大写)
    function Person(name,age) {
      this.name=name;
      this.age=age;
      this.sayHi=function () {
        console.log("我叫:"+this.name+",年龄是:"+this.age);
      };
    }

    //自定义构造函数创建对象:先自定义一个构造函数,创建对象
    var obj=new Person("小明",10);
    console.log(obj.name);
    console.log(obj.age);
    obj.sayHi();

---------------------------------------------------------------------------------------------

字面量方式创建对象

    var obj={};
    obj.name="小白";
    obj.age=10;
    obj.sayHi=function () {
      console.log("我是:"+this.name);
    };
    obj.sayHi();

优化写法:
    var obj2={
      name:"小明",
      age:20,
      sayHi:function () {
        console.log("我是:"+this.name);
      },
      eat:function () {
        console.log("吃了");
      }
    };
    obj2.sayHi();
    obj2.eat();

----------------------------------------------------------

小结

     * js是一门什么样的语言?
     * 是一门解释性的语言
     * 是一门脚本语言
     * 是一门弱类型语言,声明变量都用var
     * 是一门基于对象的语言
     * 是一门动态类型的语言:
     * 1. 代码(变量)只有执行到这个位置的时候,才知道这个变量中到底存储的是什么,如果是对象,就有对象的属性和方法,如果是变量就是变量的作用
     * 2. 对象没有什么,只要点了,通过点语法,那么就可以为对象添加属性或者方法

-----------------------------------------------------------------------------------

设置或访问属性的另一种方法

    function Person(name,age) {
      this.name=name;
      this.age=age;
      this.play=function () {
          console.log("喜欢玩游戏");
      };
    }
    var obj=new Person("卡卡西",20);
    //obj.name="佐助";

    obj["name"]="佐助";
    console.log(obj["name"]);

    obj.play();
    obj["play"]();

-----------------------------------------------------------------------------------------------

json格式数据及遍历

    //对象:有属性和方法,特指的某个事物
    //对象:一组无序属性的集合的键值对,属性的值可以是任意的类型
    //    function Dog(name) {
    //      this.name=name;
    //    }
    //    function Person(name,age) {
    //      this.age=age;
    //      this.name=name;
    //      this.sex=true;
    //      this.dog={};
    //      this.play=function () {
    //        console.log("喜欢玩游戏");
    //      };
    //    }
    //
    //    var sex=false;//男
    //    console.log(sex?"男":"女");


    //JSON格式的数据:一般都是成对的,是键值对,

    //json也是一个对象,数据都是成对的,一般json格式的数据无论是键还是值都是用双引号括起来的

    //    var obj={
    //      name:"小明"
    //    };


    var json = {
      "name": "小明",
      "age": "10",
      "sex": "男"
    };
    //遍历对象,是不能通过for循环遍历,无序

    //key是一个变量,这个变量中存储的是该对象的所有的属性的名字
    for (var key in json) {
      console.log(key + "===========" + json[key]);
    }


    //    var key="name";
    //    console.log(json[key]);
    //可以通过for-in循环
    //
    //    for(var key in json){
    //      //console.log(key);//json对象中的属性的名字
    //      console.log(json[key]);
    //    }
    //对象中确实有这个属性对象.属性名字  或者对象[属性名字]

---------------------------------------------------

值类型传递和引用类型传递

    //原始数据类型: number,string,boolean,undefined, null,object
    //基本类型(简单类型),值类型: number,string,boolean
    //复杂类型(引用类型):object
    //空类型:undefined,null
函数形式参数里,值类型参数传的是值,引用类型参数传的是对象的地址。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值