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原型链)。

  • 相关阅读:
    Spring源码解读 推荐流程
    Spring源码解读 推荐流程
    验证数据归属
    验证数据归属
    maven用途、核心概念、用法、常用参数和命令、扩展
    Reverse Linked List II
    Insertion Sort List
    Palindrome Partitioning
    Construct Binary Tree from Preorder and Inorder Traversal
    Valid Parentheses
  • 原文地址:https://www.cnblogs.com/enmeen/p/5711638.html
Copyright © 2011-2022 走看看