1.面向过程与面向对象

  • 1.面向过程:凡事都要亲力亲为,每件事的具体过程都要知道,注重的是过程
  • 2.面向对象:根据需求找对象,所有的事情都用对象来做,注重的是结果

2.JS的特性

  • 1.面向对象的特性:封装、继承和多态
  • 2.JS不是面向对象的语言,但是可以模拟面向对象的思想
  • 3.JS是基于对象的语言

3.什么是对象

- 1.看得见、摸得到、具体特指的某个东西
- 2.对象:有特征和行为,具体特指的某一个事物
- 3.对象:有属性和方法,具体特指的某个事物

4.创建对象

- 1.创建的三种方式:
    (1)调用系统的构造函数,创建对象
    (2)自定义构造函数,创建对象
    (3)字面量的方式,创建对象
- 2.创建对象方式一
     (1)实例化对象
     var obj = new Object();
    (2)添加属性   对象.名字=值
    obj.name = "小苏";
   obj.age = 28;
     (3)添加方法   对象.名字=函数
    obj.eat = function(){
            console.log("我喜欢吃油炸食品!");
    }
   (4)获取属性和方法
     console.log(obj.name);
     obj.eat();
- 3.创建方式二-工厂模式创建对象
    (1)如何获取该变量(对象)是不是属于什么类型的?
            语法:变量 instanceof 类型的名字→布尔类型true  false
    (2)在当前的方法中,可以使用this关键字代表当前的对象
    (3)如何一次性创建多个对象?→把创建对象的代码封装在一个函数中
            function createObject(){
                var obj = new Object();
                obj.name="小芳";
                obj.sayHi=function(){   console.log("我叫"+this.name);}
                  //返回对象
                return obj;
            }
             function createObject1(name){
                var obj = new Object();
                obj.name=name;
                obj.sayHi=function(){   console.log("我叫"+this.name);}
                  //返回对象
                return obj;
            }
        (4)总结:上面就是<b>工厂模式创建对象</b>
- 4. 自定义函数创建对象--创建对象方式2
   (1)函数与构造函数的区别:名字是不是大写(首字母是大写)
        function Person(){ }//参照Object的定义方式
        function Person(){
            this.name="小明";
            this.age=10;
            this.sayHi=function(){
                console.log("我叫:"+this.name+"年龄是:"+this.age);
            }
        }
        function Person(name,age){
            this.name=name;
            this.age=age;
            this.sayHi=function(){
                console.log("我叫:"+this.name+"年龄是:"+this.age);
            }
        }
        var person1 = new Person("小明",20);
        console.log(person1 instanceof Person);j→true //说明person1是Person的对象
    (2)自定义构造函数<b>创建对象时</br>--做了4件事--系统做的
            ** 1.在内存中开辟(申请一个空闲的内存空间)空间,存储创建的新对象
            ** 2.把this设置为当前对象
            **3.设置对象的属性和方法的值
            **4.把this这个对象返回
    (3)自定义构造函数--小猫
            function Cat(color,weight,age){
                   this.color =color;
                   this.weight=weight;
                   this.age=age;
                   this.eat=function(){
                         console.log("吃鱼,吃老鼠");
                    }
            }
            //创建对象--实例化一个对象,并初始化
    - 5.字面量的方式创建对象--创建方式三
        var obj = {};//空对象
        obj.name="小明";
        obj.sayHi=function(){
             console.log("我是"+obj.name);
        }
        //优化后的写法:
        var obj={
            name:"小明",
            sayHi:function(){
                    console.log("我是:"+this.name);
            }
        }
        (1)缺陷:一次性的对象

5. js是一门什么样的语言?

  • 是一门解析性的语言
  • 是一门脚本语言
  • 是一门弱类型的语言,声明变量都用var
  • 是一门基于对象的语言
  • 是一门动态类型的语言
    (1)代码(变量)只有执行到这个位置的时候,才会知道这个变量中到底存储的是什么,如果是对象,就有对象的属性和方法,如果是变量就是变量的作用域
    (2)对象没有什么,只要点了,通过点语法,那么就可以为对象添加属性或方法
posted on 2018-11-15 22:59  风飘摇123  阅读(106)  评论(0)    收藏  举报