zoukankan      html  css  js  c++  java
  • 面向对象知识点

    对象的组成:

      方法(行为,操作)  对象下的函数,叫对象的方法 :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指向

  • 相关阅读:
    VS2008 环境中完美搭建 Qt 4.7.4 静态编译的调试与发布 Inchroy's Blog 博客频道 CSDN.NET
    编写可丢弃的代码
    c++ using namespace std; 海明威 博客园
    解决MySQL server has gone away
    nginx upstream 调度策略
    (2006, 'MySQL server has gone away') 错误解决 dba007的空间 51CTO技术博客
    Linux IO模型漫谈(2) 轩脉刃 博客园
    redis源码笔记 initServer 刘浩de技术博客 博客园
    MySQLdb批量插入数据
    词库的扩充百度百科的抓取你知道这些热词吗? rabbit9898 ITeye技术网站
  • 原文地址:https://www.cnblogs.com/isylar/p/4759065.html
Copyright © 2011-2022 走看看