javascript函数与方法的区别介绍

发布时间:2020-02-19编辑:脚本学堂
本文介绍下javascript中函数与方法的一些区别,有需要的朋友,可以参考下。

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

而方法(method)是通过对象调用的javascript函数。
即方法也是函数,只是比较特殊的函数,理解了这点,在javascript中函数与方法就容易理解与应用了。
   
假设有一个函数是fn,一个对象是obj,那么就可以定义一个method:
 

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

可以区别对待javascript中的函数与方法,但总体上它们之间的差别不大。
函数是可以用函数直接量定义,也就是函数可以直接储存在变量之中,因为函数和字符串、数值一样也是数据类型。
假如储存函数的变量是全局变量,也即是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

以上的例子,只是为了说明问题,所以写的稍显简陋。