今の今まで、javascriptの「.length」をメソッドだと思っていた。配列などのデータサイズを取得するメソッドだと思っていた。
var name = 'teihen tarou';
window.alert(name.length);
で出力される結果の12はメソッドの戻り値だと思っていた・・・・・
Javascriptじゃなくて、Javaのlength()はメソッドで、Javascriptのlengthはメソッドではなく、オブジェクトのプロパティなんだね。
これと関連して?Javascriptにおける変数のオブジェクト(プロパティ)の使い方を知ったのでメモ書きする。
Javascriptのソースを読んでいて今までスルーしていたけど、以下のような記述があったりする。
var student{
name:'太郎',
age:15,
class:'3-3'
};
のようななんか入れ子構造になっている記述。これはオブジェクトといって、ちょっと特殊な変数の使い方だ。雑な言い方になるけど、変数に入っている変数のようなもの。
何か処理を行うものを、メソッド。そうでないものをプロパティ。どちらもオブジェクト。
オブジェクト(プロパティ/メソッド)
という感じでよいだろうか。
上記のプロパティの内容を主力したい場合は以下のように「.」で変数名.プロパティなどとすればよい。
window.alert(student.name + '/' + student.age + '/' + student.class);
出力結果は当然、
太郎/15/3-3
となる。
プロパティは入れ子構造も可能で、以下のように記述することも可能
var student{
name:'太郎',
age:15,
class:'3-3'
address{
area:'東京'
}
};
上記のような入れ子構造になってる場合でも「.」で繋げて表現する。LinuxやUNIXなんかのディレクトリパスをイメージするとわかりやすいだろうか。
window.alert(student.name + '/' + student.address.area);
出力結果は以下のようになる
太郎/東京
配列の要素それぞれに名前を付けるような感じかしら。
ふう~~~~。初歩的すぎて申し訳ないです。同じような勘違いしてる人いないかな?!
確かな力が身につくJavaScript「超」入門 (確かな力が身につく「超」入門シリーズ)
- 作者: 狩野祐東
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2015/10/30
- メディア: Kindle版
- この商品を含むブログを見る
リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)
- 作者: Dustin Boswell,Trevor Foucher,須藤功平,角征典
- 出版社/メーカー: オライリージャパン
- 発売日: 2012/06/23
- メディア: 単行本(ソフトカバー)
- 購入: 68人 クリック: 1,802回
- この商品を含むブログ (132件) を見る