函数和方法傻傻分不清

一、前言

  笔者在之前学习c++的时候,书上从来没有提到过方法(method)这一个名词。直到后来学习了Java,就再也没听到函数(function)这一名词了。刚开始的时候我以为方法(method)=函数(function)。但是直到后来,学习了javascript中的this关键字的时候

what?????函数不应该就是方法吗?????

二、函数和方法的区别

在通过一段地毯式搜查之后终于得知,在javascript中的解释为:

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

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

简单点说就是:将函数和对象合写在一起时,函数就变成了 “方法”(method)。

也就是说:

  1. 面向对象的语言叫方法
  2. 面向过程的语言叫函数

三、java和c++中的方法(function)和函数(method)

再把这个问题带到最开始学习java和c++的时候,为什么java里面只提及方法,而c++里面只提及函数。因为java是一个纯面向对象的编程语言,所以只有(method)没有函数(function)。但是c++既有c这样面向过程,又有class这样面向对象为什么从来没有书上提及c++的方法?因为c语言是一个纯面向对象语言,所以只有函数,没有方法。而在c++中面向对象的函数叫:成员函数,其实这也算是一种方法,但是一般不这么叫,因此c++也没有方法这一说了。