zoukankan      html  css  js  c++  java
  • js 类对象

    总结:私有属性和方法:  函数中使用var ,  函数外使用 对象

      函数中:var name="zhangsan";    var show=function(){}
      函数外:var p =new Person();   p.weight=180;  p.eat=function(){}; 

    公有属性和方法: 函数中使用this , 函数外使用prototype
      函数中使用:this.name="张三" this.show=function(){};
      函数外使用:Person.prototype.name="张三" Person.prototype.show=function(){}
    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
      <script>
      // ******************1.定义类并创建类的实例对象**********************************************
      function Person(){//类似java的构造方法
    
      }
      var p = new Person();//创建p对象
    
    // ******************2.定义公有属性和私有属性**********************************************
          /*
            定义私有属性:   1.在构造函数中 使用var定义    2.在构造函数外 使用 对象.属性名
            定义公有的属性: 1.在构造函数中 this.属性名定义  2.在构造函数外 函数名.prototype.属性名=默认值
           */
    function Person(){
        var name ="张三";//私有属性
        this.age=100; //公有属性
    }
    var p = new Person();
    p.weight=180;//私有属性 只属于p
     alert(p.weight);//180
     var p1= new Person();
      alert(p1.weight+":"+p1.name);//两个undefined
    
      Person.prototype.height=190;
      //alert(p1.age+":"+ p.age)//100:100
      //alert(p1.height+":"+ p.height);//190:190
    
    // ******************3.定义公有方法和私有方法**********************************************
          /*
            1.定义私有方法:在函数中      采用 var 方法名=function(){}定义   var showInnerPrivate=function(){}
                           在函数外      采用 对象名.方法名=function(){}   p.eatOuterPrivate=function(){} 
            2.定义公有方法: 在函数中     this.方法名=function(){};
                            在函数外     函数名.prototype.方法名=function(){}
           */
      function Person(){
          var show=function(){
              alert("我是私有方法");
          }
          this.display=function(){//公有方法
    
             alert("我是display公有方法,我调用了类中的私有方法show(),结果是:");
              show()
          }
      }
      Person.prototype.sing=function(){//公有方法
          alert("我喜欢唱忘情水");
      }
    
      show();//直接调用调用不了
      var p = new Person();
      alert(p.show());//创建对象也调用不了
    
      p.display();//ok
    
    
      p.eat=function(){
        alert("我要吃鸡肉");
      }
      p.eat();//我要吃鸡肉
      var p1 = new Person();
      p1.eat();//报错
      p1.sing();//sing(是公有的方法可以被调用)
    
      // ******************4.静态属性和静态方法*********************************************
    /*
     注意:js中静态属性和方法只能用函数名去定义和调用,不能用对象去调用
     */
    function Person(){
    }
    Person.name="张三";
    Person.see=function (){
        alert("我是静态方法");
    }
    alert(Person.name);//在ie中弹出 张三  在google中弹出Person
    Person.see();
    
      // ******************5.无参和有参构造函数*********************************************
    /*
    注意:构造函数无重载,所以函数的名字不能重复 ,重复后面覆盖前面
     */
    
      // ******************6.创建对象的三种方式*********************************************
      /*
            1.new 函数名();   var p = new Person();
    
            2.new Object();  var p = new Object();
    
            3.json格式      var json ={"a":"中国","b":"美国","c":"小日本"};
       */
        var obj = new Object();
          obj.name="李四";
          alert(typeof (obj)+obj.name);//Object 李四
    
         var json ={"a":"中国","b":"美国","c":"小日本"};
         var json1 ={1:"冲田杏梨",2:"波多野结衣",3:"苍井空"};
          alert(typeof (json)+json.a+json["b"]);//object 中国 美国  推荐这种json["b"]
          alert(json1[1]);//冲田杏梨 json1.1报错
    
          //拿到所有的用for in迭代
          for(i in json1){
              alert("我最爱的女优:"+json1[i]);
          }
      </script>
    
    </body>
    </html>
  • 相关阅读:
    统计nginx日志里访问次数最多的前十个IP
    while 格式化输出 运算符 字符编码
    Python 软件安装
    Python 基础
    Typora 基础的使用方法
    Django ORM (四) annotate,F,Q 查询
    Django 惰性机制
    Django ORM (三) 查询,删除,更新操作
    Django ORM (二) 增加操作
    Django ORM (一) 创建数据库和模型常用的字段类型参数及Field 重要参数介绍
  • 原文地址:https://www.cnblogs.com/bravolove/p/5515546.html
Copyright © 2011-2022 走看看