zoukankan      html  css  js  c++  java
  • javascript中函数和方法的区别

      经常谈论起函数和方法,也常常搞不清楚它们之间的界限,经常把两个混用。首先来看看,两者是如何定义的?

      函数(function)是可以执行的javascript代码块,由javascript程序定义或javascript实现预定义。函数可以带有实际参数或者形式参数,用于指定这个函数执行计算要使用的一个或多个值,而且还可以返回值,以表示计算的结果。

      方法(method)是通过对象调用的javascript函数。也就是说,方法也是函数,只是比较特殊的函数。假设有一个函数是fn,一个对象是obj,那么就可以定义一个method:

      obj.method = fn;
    
      obj.method();    //定义之后的调用

      虽然区别对待函数和方法比较有用,但实际比较起来,它们之间并没有想象中那么大的差别。这样讲吧,函数是可以用函数直接量定义,也就是函数可以直接储存在变量之中,因为函数和字符串、数值一样也是数据类型。假如储存函数的变量是全局变量,也即是window对象的一个属性。因此,当你调用这个函数时,实际上也是调用window对象的一个方法。所以在函数和方法之间并没有技术上的区别,真正的差别在于设计和目的,方法是用来对this对象进行操作的,this对象是方法的一个重要属性,当this对象出现在方法主体内部,this值就指向调用该方法的对象。而函数通常是独立的,并不需要经常使用this对象。

      下面有个例子展示方法的使用:

    function Rect(w, h){    //使用this对象,避免自己调用自己
        this.width = w;
        this.height = h;
    }
    function area(){
        return this.width * this.height;
    }
    var r = new Rect(4, 5);
    r.area = area;    //将函数赋值给对象的属性,来定义方法
    
    var result = r.area();    //20

      当然,这个例子只是用来说明问题,并非优雅高效的代码。也正因方法存在的各种缺点,才引入了原型对象。

  • 相关阅读:
    第 9 章 用户自己建立数据类型
    第 10 章 对文件的输入输出
    第 7 章 用函数实现模块化程序设计
    第 4 章 选择结构程序设计
    第 5 章 循环结构程序设计
    第 6 章 利用数组处理批量数据
    第 3 章 最简单的 C 程序设计——顺序程序设计
    第 1 章 程序设计和 C 语言
    第 2 章 算法——程序的灵魂
    SQL(SQL Server) 批量替换两列的数据
  • 原文地址:https://www.cnblogs.com/moltboy/p/3040450.html
Copyright © 2011-2022 走看看