回答編集履歴

1 追記

yambejp

yambejp score 49192

2016/12/14 14:27  投稿

おそらく理解されているのだと思うのですが感覚的なズレでしょうね
インスタンスを設定しなくてもカッコでくくればそこからメソッドは実行できます。
```javascript
console.log((new Date("2016/12/14")).getFullYear());
```
またstr.lengthはstringオブジェクトで定義されたオブジェクトstrに対して
lengthプロパティを参照してるだけなのでカッコがつきません
カッコがつくのはあくまでもメソッドを実行する場合です。
もしdateオブジェクトがfullyearというプロパティを持っていればカッコはつきません。
もしdateオブジェクトがfullyearというプロパティを持っていればカッコはつきません。
# 追記
文字列の長さをメソッドを利用して取ろうとおもえばprototypeを利用します。
ただしstringオブジェクトは自分自身を書き換えられないので
lengthの値を変更してのばしたり縮めたりすることはできません。
似たような(?)構造で、配列がありますが
こちらはlengthの値を変更できますので、setLength的な処理が可能です
```javascript
String.prototype.getLength=function(){return this.length;}
var str='hello';
console.log(str.getLength());
Array.prototype.setLength=function(num){this.length=num;}
var arr=['x','y','z'];
arr.setLength(1);
console.log(arr);
```

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る