创建对象

2019-02-21  本文已影响0人  木子9268

编程思想: 

面向过程:  凡事亲力亲为,所有的事情的过程都要清楚,注重的是过程 

面向对象:  提出需求,找到对象,对象解决这个问题,我们要结果,注重的是结果

面向对象的特性:  封装,继承,多态,(抽象性)

对象: 有属性和方法,具体特指的某个事物

对象: js中就是一组无序的属性的集合

属性----特征

方法----行为

JSON格式的数据,都是键值对,成对的数据

var obj={

 name:"小明"

};

 var json={

 "name":"小明"

 };

 json的数据实际上就是格式化后的一组字符串的数据

对象设置属性的值的写法:

对象.属性名字=值;----点语法

对象["属性的名字"]=值;-----键值对

对象获取属性的值的写法:

对象.属性

对象["属性"]

遍历对象的写法:

for(var key in 对象){  key---是一个变量,这个变量中存储的是遍历的对象的属性的名字

 }

js学习中三种对象:

1.内置对象----js系统自带的对象

 Math

Date

String

 Array

Object

2.自定义对象---自己定义的构造函数创建的对象

3.浏览器对象---BOM的时候讲

数据类型:

原始数据类型:number,string,boolean,null,undefined,object

基本类型(简单类型,值类型):number,string,boolean

复杂类型(引用类型):object

空类型:undefined,null

 基本类型的值在栈上

复杂类型的对象在堆上,地址(引用)在栈上

值类型之间传递的是值

引用类型之间传递的是引用(地址)

*对象分三种: 内置对象,自定义对象,浏览器对象

内置对象:系统提供的

自定义对象:自己写的

 浏览器对象:浏览器的

 Math 是一个对象,但是不是一个函数

Math对象下的属性和方法都是静态

    * 方法:

    * Math.ceil()---向上取整

    * Math.floor()---向下取整

    * Math.Pi----圆周率的值

    * Math.Max()---一组数字中的最大值

    * Math.Min()---一组数字中的最小值

    * Math.abs()----绝对值

    * Math.random---随机数字

    * Math.sqrt()----开平方

    * Math.pow()----一个数字的多少次幂

创建对象的方式:

1.调用系统的构造函数创建对象

对象有属性和行为

创建属性:对象.名字=值;

创建行为:对象.名字=函数;

2.自定义构造函数创建对象(结合第一种和需求通过工厂模式创建对象)

3.字面量的方式创建对象(工厂模式创建对象)

代码示例:

//创建一个电脑对象,有颜色,有重量,有品牌,有型号,可以看电影,可以听音乐,可以打游戏,可以敲代码

  //调动object创建对象 

        var computer=new Object();

        computer.color="red";

        computer.weight="32";

        computer.pingPai="惠普";

        computer.xingHao="x850";

        computer.action=function (){

            console.log("我可以看电影");

            console.log("我可以听音乐");

            console.log("我可以打游戏");

            console.log("我可以敲代码");

        }

      console.log( computer.color);

      console.log( computer.weight);

      console.log( computer.pingPai);

      console.log( computer.xingHao);

      computer.action();

//创建一个电脑对象,有颜色,有重量,有品牌,有型号,可以看电影,可以听音乐,可以打游戏,可以敲代码

        //自定义构造函数创建对象

        function Computer(color,weight,pingPai,xingHao){

            this.color=color;

            this.weight=weight;

            this.pingPai=pingPai;

            this.xingHao=xingHao

            // color="red";

            // weight="21";

            // pingPai="索尼";

            // xingHao="y8huu";

            this.action=function(){

                console.log("我可以看电影");

                console.log("我可以听音乐");

                console.log("我可以打游戏");

                console.log("我可以敲代码");

            }

        }

        var obj=new Computer("red",32,"惠普","ygh567")

        console.log(obj.color);

        console.log(obj.weight);

        console.log(obj.pingPai);

        console.log(obj.xingHao);

        obj.action();

    //创建一个电脑对象,有颜色,有重量,有品牌,有型号,可以看电影,可以听音乐,可以打游戏,可以敲代码

    //工厂模式创建对象

    function creatObject(color,weight,xingHao,pingPai){

        var obj=new Object;

        obj.color=color;

        obj.weight=weight;

        obj.xingHao=xingHao;

        obj.pingPai=pingPai;

        obj.action=function(){

            console.log("我可以看电影");

            console.log("我可以听音乐");

            console.log("我可以打游戏");

            console.log("我可以敲代码嗷嗷嗷");

        }

        return obj;

    }

    var per1=creatObject("yellow",888888,"bv78","华为");

    console.log(per1.color);

    console.log(per1.weight);

    console.log(per1.xingHao);

    console.log(per1.pingPai);

    per1.action();

* new 的执行过程:----->new的时候,系统做了什么事?

    *  1. 开辟空间,存储创建的新的对象

    *  2. 把this设置为当前的对象

    *  3. 设置属性和方法的值

    *  4. 返回当前的新的对象

上一篇 下一篇

猜你喜欢

热点阅读