• 面向对象


    面向对象  (无序属性的集合)

    --->减少重复代码

    1、创建对象

    --->1.属性全部放在构造函数里面

    --->2.方法写在外面(prototype)

    (1)、工厂模式

    function createperson(name) {
                var o = new Object();
                o.name = name;

                return o;//o这个变量存了一个地址,把地址返回给p
            }


     (2)、构造函数

     --->1、首字母大写,2、使用this 3、使用new

            function Student(name) {
                    this.name = name;
                }
                var stu = new Student("张三");

      (3)、原型模式

     --->我们创建的每一个函数都有一个prototype属性,这个属性是一个指针,指向一个对象,而这个对象的用途是包含可以由特定类型的所有实例共享的属性和方法。


            function Person() {

                    }

            Person.prototype.name = "刘星星";
            Person.prototype.age = 18;

            var p1 = new Person();
            var p2 = new Person();

            console.info(p1.name);--->刘星星
            console.info(p2.name);--->刘星星

            console.info(p2.age);--->18

        --->原型链继承

        优点:复用代码,让相应的对象之间的直接产生关系

        例:
            function Person(name) {
                        this.name = name;
                        this.sleep = function() {

                        }
                    }

            function Student(name) {

            }
            
            Student.prototype = new Person();--->表继承

            var stu = new Student();
            stu.sleep();

        ※※    --->构造原型方式 ※※
             例:

            function Student(name) {
                this.name = name;
            }
            Student.prototype.study = function() {
                console.info(this.name + "惊呼:好好学习,天天向上");
            }

            var stu = new Student("洋洋");
            stu.study();


        ※※    --->组合继承 ※※

            function Father(name) {
                        this.name = name;
                    }

            Father.prototype.lookBook = function() {
                console.info(this.name + "在看书");
            }


            function Son(name, age) {

                //继承属性,继承不了prototype的东西

                Father.apply(this, [name, age]);//或call

                this.hobby = "打游戏";//这个写在哪里都无所谓
            }

            //继承方法method

            Son.prototype = new Father();

            //新的方法必须写在继承之后

            Son.prototype.playPiano = function() {

            }

            var son = new Son("李四", 22);
            son.lookBook();


        ※※  --->json对象  ※※


        var stu = {
                "name": "龙姑娘",
                age: 16,
                classmate: {
                    name: "李小玉",
                    sex: "lady"
                }
            }
            console.info(stu.age);
            stu.boyFriend = "庞sir";
            console.info(stu.boyFriend);
            console.info(stu.name);
            console.info(stu.classmate.name);

  • 相关阅读:
    浅谈Linux下CPU利用率和CPU负载【转】
    Linux用户抢占和内核抢占详解(概念, 实现和触发时机)--Linux进程的管理与调度(二十)【转】
    内核中断,异常,抢占总结篇【转】
    内核中dump_stack()的实现,并在用户态模拟dump_stack()【转】
    嵌入式系统C编程之堆栈回溯【转】
    嵌入式系统C编程之错误处理【转】
    在代码中获取调用者函数的名字【转】
    手动跟踪函数的调用过程【转】
    用户态使用 glibc/backtrace 追踪函数调用堆栈定位段错误【转】
    Linux运行时I/O设备的电源管理框架【转】
  • 原文地址:https://www.cnblogs.com/paul-du/p/5437202.html
Copyright © 2020-2023  润新知