javascript - JS中的函数与方法怎么区别?
PHPz
PHPz 2017-04-10 13:13:00
[JavaScript讨论组]

原来 JavaScript 中的函数与方法有区别的。
例如 Array 对象:
Array 对象的函数有:Array.isArray 函数。
Array 对象的方法有:concat()、join()、pop()、push() 等方法。

JS中的函数与方法怎么理解和区别?

PHPz
PHPz

学习是最好的投资!

全部回复(8)
数据分析师

javascript - JS中的函数与方法怎么区别?-PHP中文网问答-javascript - JS中的函数与方法怎么区别?-PHP中文网问答

围观一下哦,学习一下。

PHPz

函数和方法是同一种东西。

面相对象叫“方法”,面相过程叫“函数”。C语言叫函数,Java叫方法。也就是习惯问题,你讲哪个,对方都能听懂。

PHPz

其实简单来说,你所说的函数可以认为是oo中的静态方法,一般来实现一些不指定某个具体对象的公用方法,其实没有啥区别,能用静态方式实现一定可以通过动态方式实现,仅仅是设计上的考虑。

剥离出公用方法或者静态方法以后,单个对象的占用的资源就少很多。

阿神

其实方法和函数是一样的,只是叫法不一样而已。
Array其实是一个Function,是构造函数。而Function其实也是对象,所以可以在Array上添加方法(如isArray,相当于其他语言中类的静态方法)。
而concat等方法是在Array原型(可以参考汤姆大叔的文章)上的方法,其实例可以调用,如[].concat([1]);

怪我咯

不用分那么清,本质是一样的

PHPz

对象的某个属性是函数时,称其为方法。
When the value of a property is a function, we call it a method. To invoke the method m of an object o, we write o.m().
牛书3.6节

黄舟

可以去看一下Stack Overflow关于这个问题的讨论Difference between a method and a function

简单来说:函数是一段代码,需要通过名字来进行调用。它能将一些数据(函数的参数)传递进去进行处理,然后返回一些数据(函数的返回值),也可以不返回数据。

所有传递给函数的数据都是显示传递的

方法也是一段代码,也需要通过名字来进行调用,不过方法跟一个对象相关联。方法和函数基本上是一样的,主要区别在于:

  1. 方法中的数据时隐式传递的(“ 方法在 C++ 中是被称为成员函数”。因此,在 C++ 中的“方法”和“函数”的区别,就是“成员函数”和“函数”的区别。此外,诸如 Java 一类的编程语言只有“方法”。所以这时候就是“静态方法”和“方法”直接的区别。)

  2. 方法可以操作类的内部数据(对象是类的实例化–类定义了一个数据类型,而对象是该数据类型的一个实例化)。方法可以操作已在类中声明的私有实例(成员)数据。

PHP中文网

函数依附于某个对象后,就可以说成是一个对象的方法。

函数着重定义,方法强调执行。

假设有一个对象obj,他存在两个方法,fn1和fn2。

obj.fn1( obj.fn2 )

我们可以这样描述:调用obj下的fn1方法,并将传递obj中名为fn2的函数。我们在提到方法时,一般有执行的味道,方法执行的后果是有返回值。在此处代码中,obj.fn2的传递,并不表示obj.fn2被执行了,仅仅是一个函数的传递。 即:将函数作为某个方法的参数,这种用法在JS中非常常见,比如各种回调处理。

函数的宿命是被调用,被调用时一般称为执行对象的方法,当然你也可以说调用了对象的某个函数。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号