のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,471,404人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

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

    JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    251 : Name_Not - 2010/12/19(日) 19:40:57 ID:??? (+37,+29,-147)
    Windowsプログラミングでも、たとえばダイアログを生成するときには
    WM_INITDIALOGってメッセージを使うことになっていたりする
    こういうのに触れているうち「初期化=init」ってのが頭に刷り込まれてきて
    もはや疑問を覚えることすらなくなってくるし(だから>>245の疑問は結構新鮮だった)
    自分が何か書くときもそういうコードを書く
    それを見た他の人も自然とinit()を使うようになる、といったところが事実だろう
    つまり「単なる慣習」以外の意味は特にない
    252 : Name_Not - 2010/12/19(日) 19:43:18 ID:??? (+27,+29,-30)
    初期化目的じゃなくてもよくわからずorとりあえずinitって名前付けてる場合が見受けられるようになって
    元の意味があいまいになってるってことすねなるほど
    生き物である言葉ではよくあることすね
    253 : Name_Not - 2010/12/19(日) 19:48:17 ID:??? (-23,-25,-5)
    >>245のレスでようやく理解した
    自分がいつもresetって書いてる関数のことか
    255 : Name_Not - 2010/12/19(日) 19:58:56 ID:??? (+27,+29,-35)
    別に何かを初期化するわけでもなくドミノ倒しの最初のドミノ的な関数にinitって付けてたよ・・・恥ずかしい・・・
    256 : Name_Not - 2010/12/19(日) 20:06:27 ID:??? (+19,+21,-18)
    元々の意味は初期化処理をまとめている関数だから init なのか
    257 : Name_Not - 2010/12/19(日) 20:09:06 ID:??? (+17,+29,-4)
    そらそーだろ・・・
    258 : Name_Not - 2010/12/19(日) 20:11:12 ID:??? (+27,+29,-12)
    初期化処理は始めに行うのが当然と思っていたから勉強になった
    259 : Name_Not - 2010/12/19(日) 20:24:35 ID:??? (+23,+25,-75)
    初期化って何度も行うわけじゃないでしょ
    普通は最初に1回=コンストラクタ
    プロパティとか何かを任意のタイミングでデフォルト値に戻したりとかならそれこそリセットだ
    260 : Name_Not - 2010/12/19(日) 20:47:00 ID:??? (-27,-30,-111)
    「コンストラクタ = 初期化」と理解している人がいるけどどういう意味で使ってる?

    var Initialize = function () { ; }
    var hoge = new Initialize();

    コンストラクタというからにはこんな使い方でないとしっくり来ない。
    "Initialize" という名前のコンストラクタ関数を作る状況が思いつかない。
    261 : Name_Not - 2010/12/19(日) 20:52:42 ID:??? (-26,-29,-137)
    「設定を初期化してください」みたいな日本語は原文がinitializeの場合やresetの場合があったりするんですね
    「initialize=初期化」って頭にあってその「初期化」って日本語が上記のような使われ方されているので「初期化」のイメージがおかしくなっていました
    initializeやinitializationが予約語になっていて役割が決まっている言語もあるみたいですね
    rubyはnewで生成してinitializeで初期化みたい
    262 : Name_Not - 2010/12/19(日) 21:07:43 ID:??? (+26,+16,-70)
    オブジェクトの初期化とオブジェクトデータの初期化の違いでしょ
    オブジェクトデータの初期化を行うなら
    コンストラクタから初期化関数を呼ぶほうが良い
    263 : Name_Not - 2010/12/19(日) 21:14:35 ID:??? (-17,-21,-26)
    Javascriptで記述されたソースをjavaに変換できるツールを探してるんだが
    誰かしらない?
    264 : Name_Not - 2010/12/19(日) 21:17:19 ID:??? (-25,-30,-72)
    >>262
    こういうこと?

    function Hoge () { ; }
    Hoge.prototype.init = function () { ; }

    オブジェクトデータという用語は始めて見るが、どういう意味だろ
    265 : Name_Not - 2010/12/19(日) 21:20:35 ID:??? (+30,+29,+0)
    266 : Name_Not - 2010/12/19(日) 21:21:37 ID:??? (+27,+29,-31)
    ES で初期化といえば「変数の初期化」を指す
    だから、変数の初期化をまとめるから init という方がしっくり来るな
    267 : Name_Not - 2010/12/19(日) 21:22:28 ID:??? (+25,+29,-53)
    >コンストラクタから初期化関数を呼ぶほうが良い
    コンストラクタ自体が初期化を行うロジックなわけで
    別に初期化関数を定義するっていう考え方がどうも理解できない
    268 : Name_Not - 2010/12/19(日) 21:26:14 ID:??? (+3,+4,-54)
    >>262 の「オブジェクトデータ」はプロパティとかメソッドを指してる?
    269 : Name_Not - 2010/12/19(日) 21:33:29 ID:??? (-12,-29,-83)
    >>267
    コンストラクタが長くなってきたら別関数にしたりしない?
    JSでコンストラクタを書くときだって、prototypeに関数を追加するのと
    hiddenフィールドから値を拾ってきてプロパティにセットしたりするのとは
    別々になってた方が見やすい(デバッグする上でも)
    270 : Name_Not - 2010/12/19(日) 21:35:20 ID:??? (+11,+13,-58)
    >>269
    コンストラクタに書くコードをインスタンスメソッドに移すだけで何も変わらないような気がする
    271 : Name_Not - 2010/12/19(日) 21:38:42 ID:??? (+34,+17,-78)
    >>270
    そりゃ処理的には同じことをやるんだから変わらないさ。

    オブジェクトの初期化:関連するオブジェクトの生成とか
    オブジェクトデータの初期化:自オブジェクト内の変数とかの初期値セットとか

    と思ってるが
    自分はこれで>>262は違和感ない。
    272 : Name_Not - 2010/12/19(日) 21:50:37 ID:??? (+27,+29,-53)
    コンストラクタで行う以外にも使う処理なら分けるかもしれないけど
    それは初期化じゃなくて単なるリセットなんじゃないの
    273 : Name_Not - 2010/12/19(日) 21:55:17 ID:??? (+72,-30,-236)
    >>271
    すまないが、あなたの使う用語は怪しいのでコードで説明してくれると助かる。

    var Hoge = function () {
     // オブジェクトの初期化 (何をする?)
     this.init.apply(this, arguments);
    }
    Hoge.prototype.square = function () { return this.x * this.y; };
    Hoge.prototype.init = function (x, y) {
     // オブジェクトデータ(?)の初期化
     this.x = x;
     this.y = y;
    }
    var foo = new Hoge(10, 20);

    オブジェクトの初期化が何を指しているのかがわからない。
    関数、配列、要素ノード...とあらゆるものがオブジェクトなわけで。
    hiddenフィールドから拾う処理も初期化処理には見えないし。
    274 : 262 - 2010/12/19(日) 21:55:39 ID:??? (+31,+29,-13)
    言葉足らずでごめん>>271と同じ感じです
    276 : 269 - 2010/12/19(日) 22:03:19 ID:??? (-29,-26,+0)
    間違えた俺=>>275=>>269
    >>271とは別人
    277 : Name_Not - 2010/12/19(日) 22:12:13 ID:??? (-28,-30,-145)
    var Storage = function (name) {
    this.name = name;
    this.init();
    };

    Storage.prototype.init = function() {
    this.datas = {};
    };
    Storage.prototype.clear = function() {
    this.init();
    }

    こんな感じ?
    279 : Name_Not - 2010/12/19(日) 22:24:48 ID:??? (-27,-30,-87)
    class Hoge {
     private int x;
     private int y;
     Hoge(_x, _y) {
      this.setX(_x);
      this.y = _y;
     }
     void setX(_x) {
      this.x = _x;
     }
     int sum() {
      return this.x + this.y;
     }
     public static void main(String[] args) {
      Hoge hoge = new Hoge(3, 5);
      System.out.println(hoge.sum()); //8
      hoge.setX(5);
      System.out.println(hoge.sum()); //10
     }
    }
    281 : Name_Not - 2010/12/19(日) 22:51:37 ID:??? (+11,+9,-1)
    piyoに関しては間違った認識だと思う
    282 : 273 - 2010/12/19(日) 22:57:07 ID:??? (+12,+18,+1)
    >>281
    詳しく
    283 : 273 - 2010/12/20(月) 00:23:16 ID:??? (-27,-30,-232)
    var Hoge = function () { this.piyo1 = 'piyo1', this.constructor.prototype.piyo2 = 'piyo2'; };
    var foo = new Hoge();
    console.log([foo.piyo1, foo.hasOwnProperty('piyo1'), Hoge.prototype.piyo1]); // ["piyo1", true, undefined]
    console.log([foo.piyo2, foo.hasOwnProperty('piyo2'), Hoge.prototype.piyo2]); // ["piyo2", false, "piyo2"]

    全て想定内の挙動だった。
    284 : Name_Not - 2010/12/20(月) 00:27:55 ID:??? (+22,+29,-12)
    サイ本読んでないことは分かった。
    285 : Name_Not - 2010/12/20(月) 00:43:02 ID:??? (+22,+29,+0)
    煽るだけで何もしないことはわかった
    286 : Name_Not - 2010/12/20(月) 00:54:46 ID:??? (+27,+29,-3)
    サイ本読んでなくてどこがおかしいか分からないから教えてくれ
    289 : 273 - 2010/12/20(月) 01:09:35 ID:??? (+32,+29,-34)
    サイ本が何を指しているのか知らないが、JavaScript第5版は読んだ。
    良書なことは認めるけど、ES3, ES5 の方が信用できるとも思う。
    真面目に答えてくれそうにないことはわかったのでもういいよ。
    290 : Name_Not - 2010/12/20(月) 01:19:00 ID:wUUEZoQR (-24,+29,-6)
    >>288
    おぉ、こんな便利関数があったとは~
    少し調べて、いろいろ試してみます。
    ありがとうございました。
    295 : Name_Not - 2010/12/20(月) 02:42:31 ID:??? (-15,-15,-57)
    >>273
    >>269の「prototypeに関数追加」の真意が知りたいのか
    コンストラクタとinit関数を別ける意味が知りたいのか
    どっち?
    297 : 273 - 2010/12/20(月) 03:01:15 ID:w2g6av1v (-17,+30,-123)
    >>295
    初めは init を分ける理由が知りたかった。prototype は派生的に出て来た疑問でこちらも出来れば知りたい。というか気になる。
    でも、彼の真意がわかれば細かいことはいいと思ってる。
    コードを一つ書いて「なぜそう書くのか」を説明してくれれば十分というのが正直な気持ち。
    悪いけどもう寝るので、続きは明日。
    298 : Name_Not - 2010/12/20(月) 20:02:16 ID:??? (+22,+29,-1)
    話の続きを聞かせて
    299 : Name_Not - 2010/12/20(月) 20:26:48 ID:??? (+27,+29,-15)
    そこへ、リュックを背負った一頭のダルメシアンがやって来ました。

    「ベン!待って!」
    300 : Name_Not - 2010/12/20(月) 21:14:02 ID:??? (+27,+29,-3)
    おもしろがって質問をしている人がいるな
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について