変数に代入されてるもの
var symbol = "you gotta keep 'em separated."; //symbol is <String> /* 中略 */ symbol = { 'name': "shinya nakano", 'dateOfBirth': new Date(1977, 10, 10), 'height': 167, 'weight': 58 } //symbol is <Object> /* 中略 */ function func(){ /* do something */ symbol. //<- ??? } /* 中略 */ function Person(name, birth, height, weight){ this.name = name; this.dateOfBirth = birth; this.height = height; this.weight = weight; } Person.prototype.sleep = function(){/*...*/}; symbol = new Person("philippe larose", new Date(1980, 7, 27), 173, 77); //symbol is <Person>
さて、func 内での
- 付近で symbol のプロパティを触ってて、そのプロパティはどれかにしか存在しない
- 直前で symbol になんか代入してる
- タイプチェックしてる
- jsdoc みたいなの(?)
くらいだろーか。
プロパティアクセスは確認はできそうだけど、付近ってどこまで?
代入は位置関係がどこまで?
タイプチェックって typeof() か .constructor を比較するだろーけど、合ってたら処理するのか違ったら return(か throw)するのかとかめんどそう。
jsdoc みたいなのはまだよくわからん。もうちょっと調べてまとめておきたい。
どーするにしろ特定できない場合ってのが出てくるから、そーなった場合にどうするか考えておかにゃ。
- 無視する
- 「エイヤー」で1個選んでしまう
- 全部使う
property 名の補完は全部使ってもいいよーに思う。
property への代入は全部使ったらどーなるやら。かといって無視していいものか。「エイヤー」っつってもなぁ。
method の実行は・・・特定できないと困るな。