回答編集履歴

2

文字列について追記

2016/12/14 04:38

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア35865

test CHANGED
@@ -83,3 +83,5 @@
83
83
  ```
84
84
 
85
85
  こんな感じで、「プロパティを変化させるメソッドが存在する」と思えば、納得がいくのではないでしょうか。
86
+
87
+ ついでに言えば、文字列の場合、イミュータブルなオブジェクトだと思うので、lengthプロパティが変更されることはないでしょう。

1

yambejpさんへのコメントを受けて追記

2016/12/14 04:37

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア35865

test CHANGED
@@ -39,3 +39,47 @@
39
39
  もうお分かりかと思いますが、メソッドは呼び出しができる関数オブジェクトとして定義されていますので、引数がなくても関数呼び出しの書式を省略することはできません。
40
40
 
41
41
  一方でプロパティは、文字列などの呼び出しができないオブジェクトとして定義されていますので、逆に呼び出しをするとエラーになります。
42
+
43
+
44
+
45
+ ##### yambejpさんへのコメントを受けて追記
46
+
47
+ > その文字列の長さを返すという行為は決まった属性を返すのではなく、変数に応じて処理をしてくれるため感覚的にはとてもメソッドに近いイメージ
48
+
49
+ ```javascript
50
+
51
+ var fakeArray = {
52
+
53
+ length : 0,
54
+
55
+ arr : '',
56
+
57
+ new : function(x){
58
+
59
+ this.arr = String(x);
60
+
61
+ this.length = 1;
62
+
63
+ },
64
+
65
+ add : function(x){
66
+
67
+ this.arr += ',' + String(x);
68
+
69
+ this.length += 1;
70
+
71
+ }
72
+
73
+ }
74
+
75
+ fakeArray.new(1);
76
+
77
+ fakeArray.length; // 1
78
+
79
+ fakeArray.add(2);
80
+
81
+ fakeArray.length; // 2
82
+
83
+ ```
84
+
85
+ こんな感じで、「プロパティを変化させるメソッドが存在する」と思えば、納得がいくのではないでしょうか。