teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2016/12/14 05:27

投稿

yambejp
yambejp

スコア117885

answer CHANGED
@@ -7,4 +7,22 @@
7
7
  またstr.lengthはstringオブジェクトで定義されたオブジェクトstrに対して
8
8
  lengthプロパティを参照してるだけなのでカッコがつきません
9
9
  カッコがつくのはあくまでもメソッドを実行する場合です。
10
- もしdateオブジェクトがfullyearというプロパティを持っていればカッコはつきません。
10
+ もしdateオブジェクトがfullyearというプロパティを持っていればカッコはつきません。
11
+
12
+ # 追記
13
+ 文字列の長さをメソッドを利用して取ろうとおもえばprototypeを利用します。
14
+ ただしstringオブジェクトは自分自身を書き換えられないので
15
+ lengthの値を変更してのばしたり縮めたりすることはできません。
16
+
17
+ 似たような(?)構造で、配列がありますが
18
+ こちらはlengthの値を変更できますので、setLength的な処理が可能です
19
+ ```javascript
20
+ String.prototype.getLength=function(){return this.length;}
21
+ var str='hello';
22
+ console.log(str.getLength());
23
+
24
+ Array.prototype.setLength=function(num){this.length=num;}
25
+ var arr=['x','y','z'];
26
+ arr.setLength(1);
27
+ console.log(arr);
28
+ ```