zoukankan      html  css  js  c++  java
  • 我对javascript面向对象编程的理解---------重载

    因为最传统的面相对象语言为java,所以本篇文章都是用java和javascript,做对比,博主也是在各种资料学习而来,加之自己对这门语言的思考。

    1.java中最基本的特征方法的重载,“javascript没有重载方法”是吗?哈哈。

    什么是重载?

      答:多个同名函数同时存在,具有不同的参数个数/类型,通过参数匹配函数。

    function method1(num,inex){

      return num+100;  

    }

    function method1(num){

      return num+200;  

    }

    var result = method1(100) ;   //300

    后面的函数覆盖了前面的函数,实际和下面代码没有区别

    var method1 = function(num,index){

      return num+100; 

    }

    method1 = function(num){

      return num+200;

    }

    因为指针覆盖了所以官方来说,javascript并没有有重载。

     个人愚见:我觉java的有参数函数名和无参数函数名,就是多个指针指向了不同的方法,实际上就是多个指针多个方法。和if else思想类似。实际对于过程并没有太多意义,只是更加面向对象,更加优雅。

    javascript却有他独到之处,就是一个方法可以用多个指针指向。占的内存也是一个方法内存。

    var method2 = method;

    这就值得我们思考了,面向对象是模拟生活,是一个名字可以指向不同的人java,还是不同名字称呼可以指向同一个人javascript,我更倾向后者,而不同名字对应不同性格也很好实现,只需要在内部判断if-else是哪一个名字,对应哪个性格(执行哪些代码变好)。可以通过参数判断。像jquery对参数的处理。

    本质区别:java对象和函数是两个概念,javascript一切皆是对象。

    javascript优势:可以把一个方法给多个指针,更符合实际。

    java优势:帮助你实现了省去了内部对参数的if-else判断。

  • 相关阅读:
    数据结构第二篇——线性表的顺序存储
    数据结构第一篇——线性表的逻辑结构
    面向对象之工资管理系统
    #ifndef三件套与#pragma once
    i++与++i的区别
    struct与class的区别(分别在c和c++中)
    浅析数据结构
    K60
    更新整理本人所有博文中提供的代码与工具(Java,2013.08)
    [置顶] cocos2d实现CCLabelTTF真正字体描边效果
  • 原文地址:https://www.cnblogs.com/LiSuSpAu/p/5761157.html
Copyright © 2011-2022 走看看