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

    不好的写法
    function CreatePerson(name,qq){//构造函数
        /* 
            new构造函数的时候
            系统会自动new一个Object对象,var this = new Object();
            最后再把这个new的this对象返回,return this;
         */
    
        this.name=name;//属性name
        this.qq=qq;//属性qq
    
        this.showName=function(){
            alert('我的名字叫:'+this.name);
        }
    
        this.showQQ=function(){
            alert('我的QQ号是:'+this.qq);
        }
    }
    
    var obj=new CreatePerson('user1','1234');
    var obj2=new CreatePerson('user2','5678');
    alert(obj.showName == obj2.showName);//false
    /* 
    两个new生成对象的showName是不同的
    new的对象多了,内存占用过多性能就会受影响了
    */

    好的写法

    function CreatePerson(name,qq){//构造函数
        this.name=name;//属性name
        this.qq=qq;//属性qq
    }
    CreatePerson.propotype.showName=function(){
        alert('我的名字叫:'+this.name);
    }
    CreatePerson.propotype.showQQ=function(){
        alert('我的QQ号是:'+this.qq);
    }
    
    var obj=new CreatePerson('user1','1234');
    var obj2=new CreatePerson('user2','5678');
    alert(obj.showName == obj2.showName);//true
    /*
    此时两个obj的showName是相同的
    */
    

    面向对象编程:用构造函数加属性(变量),用原型加方法(函数)。
    一样的放到原型中,不一样的放到构造函数中。 因为name、qq是不确定的,而显示的方法时相同的。

    面向对象: 使用对象时, 只关注对象提供的功能, 不需要关注其内部的细节, 比如jQuery

    css javascript
    class 一次给一组元素添加 原型
    style 一次给一个元素添加 给对象加的一个方法

    原型相当于css中的class, 给一组元素添加, 可以继承共用


    var arr = new Array();
    对象
    模子 产品(成品)
    Array() arr
    可以 new Array() 不可以 new arr()
    Array是一个模子, 不具备实际功能,不能 Array.push() arr是一个产品,是拿来使用的,可以 arr.push()
    类有原型,可以 Array.prototype 对象没有原型,不能 arr.prototype
     
  • 相关阅读:
    Java 中的 volatile 关键字
    Java 隐式锁
    导致并发程序出问题的根本原因是什么?
    BZOJ_2434_[Noi2011]阿狸的打字机_AC自动机+出栈入栈序+树状数组
    BZOJ_5368_[Pkusc2018]真实排名_组合数
    CF上的3道小题(2)
    BZOJ_4199_[Noi2015]品酒大会_后缀自动机
    BZOJ_4566_[Haoi2016]找相同字符_后缀自动机
    BZOJ_3172_[Tjoi2013]单词_后缀自动机
    BZOJ_3998_[TJOI2015]弦论_后缀自动机
  • 原文地址:https://www.cnblogs.com/blog-leo/p/4508459.html
Copyright © 2011-2022 走看看