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

    对象是包含相关属性和方法的集合体

    什么是面向对象

           面向对象是一种编程思想

           通过叫原型的方式来实现面向对象编程

      创建对象

             自定义对象

                   基于Object对象的方式创建对象

                   语法:var 对象名称=new Object();

                   示例:var person=new  Object();      //创建对象

                             person.name="小明";            //创建对象属性

                             person.showName=function(){        alert(this.name);    }   //创建对象方法

                             person.showName();     //调用对象方法

          使用字面量赋值方式创建对象

                示例:var person={

                                 name:"小明",

                                 showName:function(){  alert(this.name);        }

                         } 

                         person.showName();

            内置对象

                  String对象

                  Date对象

                  Array对象

    构造函数和原型对象    --返回布尔值

           作用:使用接口不需要创建很多对象,减少产生大量的重复代码

           示例:function Person(name,sex,age,hobby){

                      this.name=name;

                      this.sex=sex;

                      this.age=age;

                      this.hobby=hobby;       //创建构造函数

                      this.showName=function(){

                           alert(this.name);

                      }

                 }

                //使用构造函数创建对象

                var person1=new Person ("小明","男",18,"看书、看电影、健身、购物等")

                person1.showName();

          使用构造函数的4个步骤
           1.创建一个新对象
           2.将构造函数的作用域赋给新对象(this)
           3.执行构造函数中的代码
           4.返回新对象
           constructor属性  -创建对象得到类型
           示例:alert(person1.constructor==Person);
           instanceof操作符  -检测对象类型
          示例:alert(person1 instanceof  Object);
    原型对象
          示例:
                   function Person(){
     

                   }

                   Person.prototype.name="小明";

                   var person1=new Person();

                   var person2=new Person();

                   person1.name="小花";

                   alert(person1.name);

                   alert(person2.name);

    继承

           原型链

            一个原型对象是另一个原型对象的实例

           相关的原型对象层递进,构成了实例与原型的链条,就是原型链

           示例:

                    function Humans(){

                        this.foot=2;

                    }

                    Humans.prototype.getFoot=function(){

                           return this.foot;

                    }

                   function Man(){

                         this.head=1;

                   }

                  Man.prototype=new Humans();          //继承了Humans

                  Man.prototype.getHead=function(){

                          return this.head;

                  }

                   var man1=new Man();

                   alert(man1.getFoot());                          //2

                   alert(man1 instanceof Object);           //true    

                  alert(man1 instanceof Humans);        //true

                  alert(man1 instanceof Man);

           对象继承

                   示例:

                    function Humans(){

                     this.clothing=["trousers","dress","jacket"];

                   }

                       function Man(){     }

                  //继承了Humans

                 Man.prototype=new Humans();

                 var man1=new Man();

                 man1.clothing.push("coat");

                 alert(man1.clothing);

                 var man2=new Man();

                 alert(man2.clothing);

       借用构造函数

    apply:应用某一对象的一个方法,用另一个对象替换当前对象
          语法:

                  apply([thisObj [,argArray]])

    call:调用一个对象的一个方法,以另一个对象替换当前对象
         语法:

                 call([thisObj[,arg1[,arg2[,  [,argN]]]]])

         示例:

              function Humans(name){

                 this.name=name;

              }

              function Man(){

                 Humans.call(this,"mary");   //继承了Humans,同时还传递了参数

                  this.age=38;              //实例属性

              }

               var man1=new Man();

               alert(man1.name);       //输出mary

               alert(man1.age);          //输出38

    组合继承  -也叫做伪经典继承

           将原型链和借用构造函数的技术组合到一块,发挥二者之长的一种继承模式
           使用原型链实现对原型属性和方法的继承,而通过借用构造函数来实现对实例属性的继承
     
  • 相关阅读:
    自定义的类型放入STL的set中,需要重载自定义类中的“<”符号(转)
    C++中的explicit关键字(转)
    【小米3使用经验】小米3关闭系统自动更新(升级)
    享元模式FlyweightPattern(转)
    程序员的工作环境与效率
    Windows7远程登陆访问2003很卡的解决办法
    windows7上可以正常安装的VS2010版本
    使用Visual Studio指定命令行参数
    winform配置文件的简单使用
    Java nio epoll mina
  • 原文地址:https://www.cnblogs.com/cy7533649/p/13178512.html
Copyright © 2011-2022 走看看