• 面向对象知识点


    对象的组成:

      方法(行为,操作)  对象下的函数,叫对象的方法 :array.push  array.sort

      属性 对象下的变量,叫做对象的属性  如array.length 

        var obj= new Object();

          obj.name='xiaoming';  //对象具有属性

          obj.showName=function(){     //对象具有showName()的方法

             alert(this.name);

        } 

    当new 去调用一个函数:这个时候函数中的this就是创建出来的对象,而且函数的返回值直接就是this了。

    new 后面调用的函数,就是构造函数;


          function CreatePerson(name){
            
            this.name=name;
            this.showName=function(){
                alert(this.name);
            }
          }
          var p1=new CreatePerson('xiaoming');
            p1.showName();
         var p2=new CreatePerson('xiaoqiang');
            p2.showName();

    基本类型:赋值的时候只是值的复制;

      var a=5;

      var b=a;

      b+=3;

      alert(b) // 8

      alert(a)// 5

    对象

      var a=[1,2,3,4]

      var b=a;

      b.push(4);

      alert(b);//[1,2,3,4]

      alert(a); //[1,2,3,4]

    对象:赋值的时候不仅是值的复制,而且也是引用的传递;

      var a=[1,2,3]

      var b=a;

      b=[1,2,3,4]

      alert(b);//[1,2,3,4]

      alert(a);//[1,2,3]   //因为重新给B赋值了。所以a的值没有变;

      var a=5;

      var b=a;

      alert(a=b)// ture

      var a=[1,2,3];

      var b=a;

      alert(a=b)// flase

    原型:去改写对象下面公用的方法或者属性,让公用的方法或者属性在内存中只有一份(提高性能)

      //原型: css中的class;

      //普通方法: css中的style;

      var arr=[1,2,3,4,5];

      arr.sum=function(){

        var result=0;

        for(var i=0;i<this.length;i++){

        result+=this[i]

        }

        return result;

      }

     原型:prototype:要写在构造函数下面;

     Array.prototype.sum=function(){

      var result=0;

      for(var i=0;i<this.length;i++)

      {

        result+=this[i];

      }

    return result;

    }

    var arr1=[1,2,3,4,5];

    var arr2=[1,2,3,4];

    alert(arr1.sum());//15

    alert(arr2.sum())//10

    ==================================================

    面向对象的写法:

      function 构造函数(){

      this.属性

      }

    构造函数.prototype.方法=function(){};

    例如: var 对象1= new 构造函数();  //创建一个新对象

        对象1.方法();

    写面向对象的原则:

      -先写出普通的写法,然后改成面向对象的写法;

      >>普通方法变形

        1.尽量不要函数嵌套函数;

        2.可以有全局变量;

        3.把onload中不是赋值的语句放到单独的函数中

      >>改成面向对象

        1.全局变量就是属性;

        2.函数就是方法;

        3.onload中创建对象;

        4.更改this指向

  • 相关阅读:
    如果获取 上传域的文件名
    更改织梦后台广告
    html5 让IE6,7支持HTML5语义化标签的文件
    如何获取选中的复选框
    手机下的ev.pageX无效
    Ajax
    列出远程git的全部分支
    扫描局域网中Gogs服务器(ruby)
    Xcode删除无用的Symbols信息
    Docker
  • 原文地址:https://www.cnblogs.com/isylar/p/4759065.html
Copyright © 2020-2023  润新知