• 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>
  • 相关阅读:
    反射 Reflection
    后台输出的数据进行字符判断,小数点后边是0不显示,不是0显示
    判断input内的字符是不是数字或字母
    手机端底部按钮隐藏与显示
    CSS改变checkbox样式
    js小数取整 小数保留两位
    如何判断打开页面时使用的设备?
    H5 拖放实例
    根据手机系统引入不同的css文件
    HTML 5 video 视频标签全属性详解(转)
  • 原文地址:https://www.cnblogs.com/bravolove/p/5515546.html
Copyright © 2020-2023  润新知