txt=document.getElementById("intro").innerHTML;
上記についてですが、最初のgetElementByIdはメソッド、innerHTMLはプロパティですがどちらも処理を行っていると思うのですが、そう考えるとメソッドとプロパティの違いとは何なのでしょうか。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
メソッド, プロパティはいずれもオブジェクト指向プログラミング言語における概念で, それぞれ
- メソッドはオブジェクト(対象)に対する操作を表す概念
- プロパティはオブジェクトにおける**属性(設定)**を表す概念
であり, 乱暴に言うと,
JavaScript
1var obj = [なんらか(例えばDOM)のオブジェクト];//操作の対象 2 3//メソッドは関数として中身を操作する 4obj.somemethod(); 5var value = obj.somemethod(); 6 7//プロパティは代入演算子で中身の値を設定・取得する 8obj.someproperty = "何らかの値"; 9var value = obl.someproperty;
となります.
一方, 処理の観点で見るとメソッドもプロパティも外部からアクセスすることでオブジェクトに対して何らかの影響を与えることになります. 例えばinnerHTML
プロパティは値を設定することで対象のノードの中身が書き換わります. そのため, 事実上メソッドもプロパティも(記述の方法が違うだけで)本質的に違いはありません.
で, JavaScriptの世界では言語の実装を単純化するために全てを**「プロパティとして扱う」**取り決めとなっており, Lhankor_Mhyさんがおっしゃっているとおり, 「メソッドはプロパティの値としてファンクション(関数)が格納されているもの」となります.
JavaScript
1var elem = document.createElement("div"); 2elem.querySelector; //←プロパティquerySelectorに入っているのはfunctionオブジェクト 3elem.querySelector("#id");//←メソッドとしてquerySelectorを実行
NOTE:
このようにメソッドを取り扱うのはJavaScript言語特有のアプローチなので, JavaやC#等の他のオブジェクト指向プログラミング言語では通用しません.
NOTE:
メソッドはファンクションが格納されているプロパティである. ならば, メソッドの内容を他の値で書き換えることができるか?
→できます.しかし, 深刻なバグを作り込んでしまう可能性があるため, ある程度JavaScriptに習熟するまでは絶対にしないで下さい.
JavaScript
1var elem = document.createElement("div"); 2elem.querySelector = "間違い";//←querySelectorはプロパティなので値を代入できてしまう 3elem.querySelector("#id");//←でも中身がfunctionオブジェクトでないためメソッドとしては実行できない.
投稿2017/12/09 23:11
総合スコア4756
0
ベストアンサー
仕様によるとこうです。
function that is the value of a property
メソッドとはプロパティの値となっている関数のことのようです。なので、getElementById
はdocument
のメソッドでありプロパティでもあるということになります。
投稿2017/12/09 10:26
総合スコア36089
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/09 12:41
2017/12/09 22:51
2017/12/10 08:04
2017/12/11 01:52
2017/12/13 12:54
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/10 02:42
2017/12/10 03:26
2017/12/13 12:53