zoukankan      html  css  js  c++  java
  • js -- 面向对象

    一:构造对象 属性和方法

    <script>
            //方法一 定义对象属性和方法
            var person = {
                name : "wu",
                age : 22,
                eat : function(){
                    alert("eat");
                }
            };
            alert(person.eat()); //alert : eat undifined
    </script>
    <script>
            //函数构造器构造对象
            function Person(){};
            Person.prototype = {
                name : "wu",
                age : 22,
                eat : function(){
                    alert("eat");
                }
            };
            var p = new Person();
            alert(p.name);       //alert wu
    </script>

     

    二:面对对象 复写 继承 封装

    <script>
            //面向对象中 js创建一个类
            function People(name) {
                this.name = name;
            };
            People.prototype.say = function(){
                alert("pre-hello" + this.name);
            };
            //Student 继承 People
            function Student(name) {
                this.name = name;
            };
            Student.prototype = new People();
            //调用父类的 say方法
            var superSay = Student.prototype.say; //注意
            //复写 父类的方法
            Student.prototype.say = function() {
                superSay.call(this);
                alert("stu-hello" + this.name);
            }
            var s = new Student("w");
            s.say();          //alert stu-hello
            /*
            //调用People 的 say方法
            var s = new Student();
            s.say();             //alert hello
            */
    </script>

    封装

    <script>
            (function () {
                var n = "123";
                function People(name) {
                    this.name = name;
                };
                People.prototype.say = function () {
                    alert("pre-hello" + this.name + n);
                };
                //给其他 类 一个接口
                window.People = People;
            }());
    
            (function () {
                function Student(name) {
                    this.name = name;
                };
                Student.prototype = new People();
    
                var superSay = Student.prototype.say;
    
                Student.prototype.say = function () {
                    superSay.call(this);
                    alert("stu-hello" + this.name);
                }
                window.Student = Student;
            }());
            var s = new Student("w");
            s.say();             //alert pre-hellow123  stu-hellow
    </script>

     面向对象 方法二:

    <script>
            function Person(name){
                //创建空的对象
                var _this = {};
                _this.name = name;
                _this.sayHello = function() {
                    alert("P-hello" + _this.name);
                };
                return _this;
            };
            //继承Person
            function Teacher(name){
                var _this = Person(name);
                //父类的sayHello方法
                var superSay = _this.sayHello;
                //复写
                _this.sayHello = function(){
                    superSay.call(this);
                    alert("T-hello" + _this.name);
                }
                return _this;
            }
            var t = new Teacher("wu");
            t.sayHello();
    </script>
    拼命敲
  • 相关阅读:
    docker4dotnet #1 – 前世今生 & 世界你好
    DockerCon 2016 – 微软带来了什么?
    TFS 2015 敏捷开发实践 – 看板的使用
    几款Git GUI客户端工具
    (视频)Erich Gamma 与 Visual Studio Online 的一点野史
    GitHub + VSTS 开源代码双向同步
    UDAD 用户故事驱动的敏捷开发 – 演讲实录
    用户故事驱动的敏捷开发 – 2. 创建backlog
    算法 之 简单选择排序法
    算法 之 冒泡排序法
  • 原文地址:https://www.cnblogs.com/wuyuwuyueping/p/9040659.html
Copyright © 2011-2022 走看看