美文网首页
初步认识面向对象2

初步认识面向对象2

作者: MGd | 来源:发表于2017-03-23 14:25 被阅读2次
  • 1.面向对象一般写法:
1.创建对象,可以通过函数来创建一个对象
    function dog(){
/*1.1创建一个对象*/
        var obj = new Object();
/*1.2设置属性*/
        obj.name = '小花';
        obj.age = 0;
        obj.dogFrends = ['小黄','小白'];
        obj.eat = function(){
            console.log('吃牛奶');
        }
        obj.run = function(){
            console.log('我家');
        }
/*返回这个对象*/
        return obj;
    }
    var smallDog = dog();
    console.log(smallDog.name);
    var bigDog = dog();
    console.log(bigDog.age);
  • 2.面向对象传递参数:
1.创建对象,可以通过函数来创建一个对象
    function dog(name,age,dogFriends){
/*1.1创建一个对象*/
        var obj = new Object();
/*1.2设置属性*/
        obj.name = name;
        obj.age = age;
        obj.dogFrends = dogFriends;
        obj.eat = function(){
            console.log('吃牛奶');
        }
        obj.run = function(){
            console.log('我家');
        }
/*返回这个对象*/
        return obj;
    }
    var smallDog = dog('小花',0,['小白','小黄']);
    console.log(smallDog.age);
    var bigDog = dog('大花',2,['大白','大黄']);
    console.log(bigDog.age);
  • 3.使用this接收参数:
1.创建对象,可以通过函数来创建一个对象
    function dog(name,age,dogFriends){
/*1.1创建一个对象*/
        var obj = new Object();
/*1.2设置属性*/
        this.name = name;
        this.age = age;
        this.dogFrends = dogFriends;
        this.eat = function(){
            console.log('吃牛奶');
        }
        this.run = function(){
            console.log('我家');
        }
/*返回这个对象*/
        return obj;
    }
    var smallDog = dog('小花',0,['小白','小黄']);
    console.log(smallDog.age);
    var bigDog = dog('大花',2,['大白','大黄']);
    console.log(bigDog.age);
  • 通过这种方式创建地对象可以作为模板,但是我们创建的过程需要创建一个对象,而且每次都需要返回这个对象,所以我们需要改造这个方法。
  • 4.使用构造函数创建对象:
1.创建对象,可以通过构造函数来创建一个对象
    function Dog(name,age,dogFriends){
/*1.2设置属性*/
        this.name = name;
        this.age = age;
        this.dogFrends = dogFriends;
        this.eat = function(someThing){
            console.log( this.name+'吃'+someThing);
        }
        this.run = function(someWhere){
            console.log(this.name +'跑'+someWhere);
        }
    }
    var smallDog = new Dog('小花',0,['小白','小黄']);
    console.log(smallDog.age);
    var bigDog = new Dog('大花',2,['大白','大黄']);
    console.log(bigDog.age);
    smallDog.eat('奶');
    bigDog.eat('牛肉');
  • 5.使用构造函数创建对象优化参数
    因为参数较多的时候,我们写起来不容易,所以我们抽取一个用来存储参数的数据,这个数据一般是字典。
1.创建对象,可以通过构造函数来创建一个对象
    function Dog(option){
/*1.0判断是否传入字典*/
        var option = option ||{};
/*1.1设置属性*/
        this.name = option.name;
        this.age = option.age;
        this.dogFrends = option.dogFrends;
        this.eat = function(someThing){
            console.log( this.name+'吃'+someThing);
        }
        this.run = function(someWhere){
            console.log(this.name +'跑'+someWhere);
        }
    }
    var smallDog = new Dog({name:'小花',age:0,dogFriends:['小白','小黄']});
    console.log(smallDog.age);
    var bigDog = new Dog({name:'大花',age:2,dogFriends:['大白','大黄']});
    console.log(bigDog.age);
    smallDog.eat('奶');
    bigDog.eat('牛肉');
    alert(smallDog.eat == bigDog.eat);  //false
  • 通过购造函数创建出来的对象每一个都是一个新的对象
  • 他们里面的同名方法不是一样的
  • 但是我们这些方法实现的功能是一样的
  • 所以我们没有必要每次创建一个对象都设置方法
  • 最好,让这些创建的对象拥有的是同样的方法
  • 6.使用原型对象
1.创建对象,可以通过构造函数来创建一个对象
    function Dog(option){
/*1.0判断是否传入字典*/
        var option = option ||{};
/*1.1设置属性*/
        this.name = option.name;
        this.age = option.age;
        this.dogFrends = option.dogFrends;
 }
    Dog.prototype = {
        eat:function(someThing){
            console.log( this.name+'吃'+someThing);
        },
        run:function(someWhere){
            console.log(this.name +'跑'+someWhere);
        }
    }
    var smallDog = new Dog({name:'小花',age:0,dogFriends:['小白','小黄']});
    console.log(smallDog.age);
    var bigDog = new Dog({name:'大花',age:2,dogFriends:['大白','大黄']});
    console.log(bigDog.age);
    smallDog.eat('奶');
    bigDog.eat('牛肉');
  • 7.创建对象最结版:
 /*1.创建对象,可以通过构造函数来创建一个对象
    function Dog(option){
/*当使用对应的构造函数创建对象的时候,我们首先调用初始化函数*/
        this._init(option);
    }
//设置原型对象
    Dog.prototype = {
/*如果放置属性一般通过初始化方法来放置属性*/
        _init:function(option){
/*1.1设置属性*/
            var option = option ||{};
            this.name = option.name;
            this.age = option.age;
            this.dogFrends = option.dogFrends;
        },//设置方法
        eat:function(someThing){
            console.log( this.name+'吃'+someThing);
        },
        run:function(someWhere){
            console.log(this.name +'跑'+someWhere);
        }
    }
    var smallDog = new Dog({name:'小花',age:0,dogFriends:['小白','小黄']});
    console.log(smallDog.age);
    var bigDog = new Dog({name:'大花',age:2,dogFriends:['大白','大黄']});
    console.log(bigDog.age);
    smallDog.eat('奶');
    bigDog.eat('牛肉');
  • 8.this的认识
  • this表示的意义:
    this一般放在函数(方法)中,如果哪个对象拥有这个函数(哪个对象调用这个函数)那么this就表示这个对象
    所有的全局变量和方法都是window的属性和方法
    function dog(){
        alert(this);
    }
    dog();
//   任何一个函数动都可以通过new来创建一个对象,所以我们这个dog函数属于新创建的对象,所以这个this表示新创建地对象.
   new dog();
  • this的特殊的用法:
    如果this在事件指令中,表示事件触发者,一般是事件源
    如果this在定时器中,表示window

相关文章

  • 初步认识面向对象2

    1.面向对象一般写法: 2.面向对象传递参数: 3.使用this接收参数: 通过这种方式创建地对象可以作为模板,但...

  • 面向对象(OO)初步认识

    每个人在了解JAVA是什么样的编程语言的过程中一定都听说过这样一句话,万物皆对象。总结下个人初步对JAVA的精髓面...

  • android设计模式

    学习大纲: 重新认识面向对象: 1:理解隔离变化 2:各司其职 3:对象是什么? 面向对象设计原则(八个) 1.依...

  • 面向对象分析与设计的底层逻辑

    面向对象是符合人认识事物的基本方法 人是怎么认识事物的 在面向对象出现之前,已有面向过程的分析方法,为什么面向对象...

  • 面向对象

    认识面向对象 理解面向对象 成员变量和局部变量

  • 初步认识面向对象1-概念性

    面向对象 什么是对象? 对象就是带有属性和方法的数据类型。 任何一门高级语言都要面向对象,,JavaScript则...

  • 27. 企业级开发基础8:面向对象扩展

    前面的章节中,我们已经学习过面向对象的基本操作、面向对象的三大特征的详细操作,对于面向对象有了一个初步的了解和认知...

  • C++学习笔记之C++基础

    1、C++学习计划 (1)基础语法(复习)——初步了解,基础编程(2)核心编程——面向对象(3)提高编程——泛型编...

  • c++面向对象程序设计(第2版)

    c++面向对象程序设计 [toc] c++的初步知识 概念 与c的异同面向对象注释输入输出流对象不同的头文件命名空...

  • JS面向对象

    JS面向对象入门 1、面向对象语言概念面向对象语言主要包括 类、对象、封装、多肽。2、面向对象的编程思想面向过程思...

网友评论

      本文标题:初步认识面向对象2

      本文链接:https://www.haomeiwen.com/subject/dabznttx.html