[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 12/07 09:57 / Filesize : 397 KB / Number-of Response : 1030
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

+ JavaScript の質問用スレッド vol.120 +



671 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 09:30:58.95 ID:DODkZCvX.net]
>>644
> 最善は、オブジェクトはオブジェクトとして、関数をもたず、単なるデータの塊として
だから、それをどうやって実装するのか、という事を聞いているのだが
「データの塊」とはJSONにあるような「プロパティの塊」の事か?

function Person (name) { this.name = String(name); }
var obj = {name1: new Person('Ken'), name2: {name: 'Ken'}};
console.log(JSON.stringify(obj)); // "{"name1":{"name":"Ken"},"name2":{"name":"Ken"}}"

結局、JSONの問題点は克服できてないのだが
あなたの頭の中がJSONに最適化されているからJSONにそぐわないコードを意識的に追い出しているに過ぎない
- 関数が消されるが、使わないので問題ない
- undefined は消されるが、undefined をプロパティ値に持たないので問題ない
- new Date は String 型に変換されるが、後で new Date し直すので問題ない
- new Arrayを除く全てのオブジェクトは new Object に変換されるが、オブジェクトおを「プロパティの塊」としかみないので問題ない
- new Date(2016, 5, 14, 9, 0, 0) と "2016-06-14T00:00:00.000Z" が同値を認識されるが、データの塊としか見ないので問題ない
- new function Person (name) { this.name = name; }('Ken') と {name: 'Ken'} が同値と認識されるが、オブジェクトを「プロパティの塊」としか見ないので問題ない

> 圧倒するほどのメリットと言えば、それこそAPIやら、socket.ioを経ても素直に透過な所じゃないかな。
JSONはシリアライズ不可能なオブジェクトを扱えないデメリットがある
「あなたは」シリアライズ不可能なオブジェクトを使わないからJSONが最適解だが、「私は」シリアライズ不可能なオブジェクトを扱うので最適解が「シリアライズ不可能なオブジェクトを社ローコピーする」になっている
トレードオフの関係にあることは間違いない






[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<397KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef