zoukankan      html  css  js  c++  java
  • 对js 面对对象编程的一些简单的理解

    由简单开始深入:

    最简单的 直接对象开始

     1 var desen = {
     2     age:24,
     3     name:'xyf',
     4     job:'fontEnd',
     5     getName:function(){
     6         console.log(this.name);
     7     },
     8     setName:function(name){
     9         this.name = name;
    10     }
    11 }

    这是一个简单的对象实例。但是如果我要创建多个实例,将会非常麻烦。

    改进写法:使用我们经常听到的构造函数模式。(构造函数的取名默认首位大写)

    function Desen(age,name){
        this.age = age;
        this.name = 'name';
        this.getName=function(){
             console.log(this.name);
        }
        this.setName=function(name){
            this.name = name;
        }
    }
    使用构造函数的好处有很多。一来可以方便的创建多个实例,二来可以清楚的知道他们的原型对象(实例拥有constructor属性,指向他们的构造函数)

    再进一步:如果我们有很多实例了,但是每个实例中有重复包含了setNameh 函数 非常浪费内存。这里就要引用到耳熟能详的原型概念了--Prototype.
    继续修改之前的构造函数
    function Desen(age,name){
        this.age = age;
        this.name = 'name';
        this.getName=function(){
             console.log(this.name);
        }
    }
    Desen.prototype.setName = function(name){
        this.name  = name;
    }

    这种写法,将之前每个实例都拥有的相同功能简化为一个。存于prototype对象中。至于为何(参考js原型链)。

  • 相关阅读:
    心慌慌
    辛苦了
    [转]家庭长寿秘方:夫妻关系之守则。
    无题
    浮躁
    [转]樱木花道9大缺点
    一票难求
    Excel录入数据,自动记录当前时间点
    Excel数据透视表基本使用
    linux下tomcat7虚拟目录配置
  • 原文地址:https://www.cnblogs.com/enmeen/p/5711638.html
Copyright © 2011-2022 走看看