-
ID:.xztMT さんの質問

JavaScriptの関数とメソッドの違いって何でしょうか?

みんなの回答 4 件

ID:yXdy72 さんの回答

言い方が違うだけで一緒です

ID:VhbP8U さんの回答

jsの場合そのへんごっちゃと言えばごっちゃなのだが、
言葉の意味的に言えば、
グローバルでオブジェクトの指定無しに呼び出せるのが関数で、
オブジェクトに紐付いているのがメソッド。

ID:Wm7Wik

関数はメソッドも含むfunction全部じゃないの?

ID:VhbP8U

そうともいえるし、そうでないともいえる。
jsってめんどくさい。

ID:XlpIxS

jsの場合プロトタイプベースのオブジェクト指向言語なので、厳密には全てがメソッドです。

ID:2kokyP

クラスが内包する関数のことをオブジェクトとか言い出したオブジェクト指向の糞どもの所為で今みたいなわけが解らないことになってるんだよなぁ。

ID:xiJK8b さんの回答

クラスの中にある関数をメソッドとか呼んでる。関数は関数。
JSの場合言語的にクラスがないのでアレなんだが、
乱暴に言うと foo.bar() だと foo の bar() という関数が
foo のメソッド、とかいう言い方をする。

ID:XRvs0x さんの回答

正解はES仕様書にちゃんと書いてあります。
4.3.31
method
function that is the value of a property
です。

ID:rP2USY

ここの住人に「ES」って書いてもなんのことやら分からんってば。

ID:OqgG5y

そんなこと書いたら今度は、
関数とメソッドとプロパティの違いって何でしょうか?
ってトピが立つぞwww

ID:.xztMT

プロパティは違うと思うんですけど…

ID:XRvs0x

改めて説明すると、
1つ目の考え方は「利用の仕方」の違いであって、基本的にfunc()と使うものはメソッドと呼ばずobj.func()と使うものはメソッドと呼びます。
但し前者がglobal.func()と置き換えられることから分かるように、objが単にネームスペース的な役割しか持っていない時はメソッドと呼びません。
2つ目の考え方はメソッドとは基本的にthisを利用し、objを利用する関数というものです。
但し、thisを利用しないスタティックメソッドもメソッドと呼ばれる事があります。これは直接objを利用しないが、関連する機能を提供するものだからで、3つ目の考え方は「定義の仕方」の違いです。
これら3つの判断基準を元に、時と場合と視点によってどう呼ぶかは変わります。

最終更新日:2015-05-30 (7,729 views)

関連するトピックス

ページ上部に戻る