美文网首页
面向对象

面向对象

作者: 童_268a | 来源:发表于2017-10-13 19:45 被阅读0次

    为什么学习面向对象?
    我真的不知道!
    1.面向对象 编程:采用面向对象的思想来编写程序
    找对象
    2.面向过程 编程: 意思采用面向过程的思想来编写程序
    按步骤解决问题: 1,2,3...
    3.面向对象 编程思想: 万物皆对象
    (1)找对象
    (2)实现对象

    创建对象的方式

    1. 构造函数
    (1)格式:
            function Cat(参数列表) {
                this.name     // this 代表new出来的对象
    
                this.miaow = function() {}
            }
    
            new Cat(参数列表)  // 代表创建对象
    
     (2)原型函数:
          每个构造函数中都存在 1个隐藏的对象,名字是 prototype,  原型
           原型对象   是被所有实例对象 公用的!是唯一的
       总结:  找原型对象有2个办法:
                    1.  构造函数名.prototype
                    2.  对象名.__proto__   (chrome浏览器才可以使用)
    
    1. 函数创建的形式(工厂模式)
            function create() {
                var obj = {}
    
                return obj;
            }
    
    

    3.面向对象编程的特点:

        1. 封装(属性 和 行为 都捆绑在一起)
            
            函数: 把代码捆在一起
    
            优点:
                (1) 重复利用
                (2) 便于管理,代码更加清晰
    
    2.继承
       为了让子类继承父类的属性(也包括方法),首先需要定义一个构造函数。
    然后,将父类的新实例赋值给构造函数的原型.
    
    例如:
        创建三种动物 对象如下:
        1. 猫       4条腿               喵喵叫
        2. 加菲猫   4条腿,1对蓝眼睛    喵喵叫、讲笑话
        3. Tom猫    4条腿,蓝色毛发     喵喵叫、讲笑话、抓老鼠
    
    
      代码
    function TomCat() {
        this.color = "蓝色毛发";
    }
    // 继承
    TomCat.prototype = new Cat();
    TomCat.prototype.joke = function() {
        console.log("讲笑话。哈哈哈");
    }
    TomCat.prototype.catchmouse = function() {
        console.log("抓老鼠");
    }
    function JFCat() {
        this.eye = "蓝眼睛"
        
    }
    //    注意 顺序,先继承,再增加!
    // 继承猫
    JFCat.prototype = new Cat();
    // 增加了讲笑话的方法
    JFCat.prototype.joke = function() {
        console.log("讲笑话")
    }
    function Cat() {
        this.legs = 4; // 增加属性 腿
    }
    // 对于对象中 方法/行为/动作/函数  一般建议放在 原型 中!
    // 将方法 放到原型对象中,这样节省空间,更好些!
    Cat.prototype.miaow = function() {
        console.log("喵喵喵~")
    }
    // 调用
    var cat1 = new Cat();
    cat1.miaow();
    
     3.多态:
    字面意思多种状态,在面向对象语言中,接口的多种不同的实现方式即为多态。
    

    相关文章

      网友评论

          本文标题:面向对象

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