面向对象

创建方式

  1.使用Object或对象字面量创建对象

  2.工厂模式创建对象

  3.构造函数模式创建对象

  4.原型模式创建对象

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <script>

       // 1.使用Object内置的构造函数来创建对象
       var person = new Object();
       person.name = '热狗';
       person.age = 20;
       person.fav = function () {
           alert(this.name)
       };
       person.fav();



       // 2.字面量方式创建
        var person = {
            name: '热狗',
            age:18,
            fav:function () {
                alert(this.name)
            }
        };
        person.fav();


        // 3.工厂模式
        function createPerson() {
            var person = new Object();
            person.name = '热狗';
            person.age = 20;
            person.fav = function () {
                alert(this.name)
            };
            return person;
        }
        var p1 = createPerson();
        function createFruit() {
            var fruit = new Object();
            fruit.name = '热狗';
            fruit.age = 20;
            fruit.fav = function () {
               alert(this.name)
            };
           return fruit;
        }
        var f1 = createFruit();
        console.log(p1 instanceof Object);
        console.log(f1 instanceof Object);
    </script>
</body>
</html>

 构造函数创建对象

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<script>
    // 构造函数创对象
    function Person(name,age) {
        this.name = name;
        this.age = age;
        this.fav = function () {
            alert(this.name)
        }
    }
    var p1 = new Person('热狗', 18);
    console.log(p1);
    console.log(p1 instanceof Person);
</script>
</body>
</html>

 原型模式创建对象

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <script>

        function Person(name, age) {
            this.name = name;
            this.age = age;
        }

        // Person.prototype它是person的父类
        Person.prototype.showName = function () {
            // this指向的是person
            console.log(this.name);
        };
        var p1 = new Person('热狗', 18);
        p1.showName();
        // 多态: 如果现在两个类都有共同的方法,那么我们把共同测方法抽取出来成为一个基类,
        // 然后这两个类继承这个基类,然后调用相同的方法它们所处的这个形态就不一样

        // 程序员 java程序员 python程序员他们都是程序员,但是他们继承程序员这个类,
        // 他们调用相同的方法但是得到的结果就不一样
    </script>
</body>
</html>

  

 

  

原文地址:https://www.cnblogs.com/Alexephor/p/11347750.html