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

    私的良スレ書庫

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

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

    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
    352 : Name_Not - 2014/09/15(月) 07:47:19.66 ID:???.net (+7,-17,-217)
    >>351
    目的と好みで複数のやり方の中から選ぶ
    例えば、孫継承の prototype に対して、先祖 prototype の動的な書き換えを同時反映させるかどうかで
    実装のやり方が変わってくる

    [継承とプロトタイプチェーン]
    http://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Inheritance_and_the_prototype_chain

    もし jQuery から継承したいなら、jQuery オブジェクトはいろんなところで new されるから、
    たぶん jQuery のコンストラクター自体を書き換えるとか、面倒なことになると思うよ
    素直に jQuery で extend 使ったら?
    353 : Name_Not - 2014/09/15(月) 08:07:39.74 ID:???.net (+57,+29,+0)
    さすがD級プログラマー
    迷走してますね
    355 : Name_Not - 2014/09/15(月) 12:13:52.87 ID:???.net (-1,-29,-14)
    __proto__自体が一般的でないってそろそろ気づけよ
    356 : Name_Not - 2014/09/15(月) 12:57:32.28 ID:ZXXW0qF4.net (-15,+29,-85)
    非標準だからこそ一般的方法を探してるんですが?
    プロトタイプチェーンはJSにとっては根幹的機能なのですから
    本来は任意に設定出来る方法を標準で提供するべきなのです
    しかし色々考えましたが
    既に作られた関数オブジェクトのプロトタイプチェーンを
    他の関数に繋ぎ変える方法はなさそうですね
    357 : Name_Not - 2014/09/15(月) 13:07:42.57 ID:???.net (+57,+29,-29)
    javascriptで初めてOOPに触れた奴って、OOPの思想を理解してないからこういう理解になっちゃうんだろうなw
    358 : Name_Not - 2014/09/15(月) 13:43:16.28 ID:???.net (+51,+29,-29)
    標準的な方法じゃなくてなぜか__proto__を必死に調べるのはなぜなんだぜ?
    お前がいろいろ考えることなんて先人がやってるか見当違いのどちらかだ。
    360 : Name_Not - 2014/09/15(月) 14:11:10.74 ID:ZXXW0qF4.net (-16,+26,-2)
    >>358
    日本語読めない人ですか?
    361 : Name_Not - 2014/09/15(月) 14:14:03.15 ID:???.net (+57,+29,-33)
    JavaScriptは普及率と入りやすさで一番と言ってもいい言語なんだから
    もっと「JavaScriptで始めるオブジェクト指向プログラミング」みたいなページがあればいいんだが
    363 : Name_Not - 2014/09/15(月) 14:22:54.06 ID:ZXXW0qF4.net (-7,+29,-73)
    一般的なOOPでクラスメソッドを継承出来ないのは無論分かってますよ?
    プロトタイプ言語ならではのことを実現したいと考えただけです
    技術者としての本能と言えるでしょう
    364 : Name_Not - 2014/09/15(月) 14:24:13.40 ID:???.net (+57,+29,-43)
    D級プログラマは限られた仕様の中から最適解を選択することを知りません。
    彼にとって自分が想像したことは必然であり、なくてはならないものと信じているからです。
    365 : Name_Not - 2014/09/15(月) 14:29:06.04 ID:???.net (-3,-30,+0)
    >>363
    おまえ、ただの無能なんだな

    http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/proto
    Warning: The __proto__ property is deprecated and should not be used. Object.getPrototypeOf should be used
    instead of the __proto__ getter to determine the [[Prototype]] of an object. Mutating the [[Prototype]] of an object,
    no matter how this is accomplished, is strongly discouraged, because it is very slow and unavoidably slows down
    subsequent execution in modern JavaScript implementations. However, Object.setPrototypeOf is provided in ES6
    as a very-slightly-preferred alternative to the __proto__ setter.

    http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/setPrototypeOf
    Mutating the [[Prototype]] of an object, using either this method or the deprecated Object.prototype.__proto__, is
    strongly discouraged, because it is very slow and unavoidably slows down subsequent execution in modern
    JavaScript implementations.
    Mutating the [[Prototype]] of an object is, by the nature of how modern JavaScript engines optimize property
    accesses, a very slow operation. If you care at all about performance, you should never mutate the [[Prototype]]
    of an object, either using this method or using Object.setPrototypeOf. Instead, create the object with the desired
    [[Prototype]] using Object.create.

    それでもやるなら勝手にどうぞ
    366 : Name_Not - 2014/09/15(月) 14:36:11.86 ID:???.net (-1,-29,-25)
    __proto__なんていじる必要は全く無いことに気付けよ
    367 : Name_Not - 2014/09/15(月) 14:41:35.87 ID:ZXXW0qF4.net (+12,+29,+0)
    >>365
    なぜそれをコピーしたんですか??
    368 : Name_Not - 2014/09/15(月) 14:45:11.50 ID:???.net (+57,+29,-59)
    JSは発展途上の言語なのでA級以上の技術者にとっては隔靴掻痒なところが結構ありますね
    ES6が使えたらいいのですが、実際にはES5どころかES3で組まないといけないという悲しみ
    369 : Name_Not - 2014/09/15(月) 14:45:27.71 ID:???.net (+91,+28,-14)
    >>367
    D級プログラマは理解力も低いようですね。
    370 : Name_Not - 2014/09/15(月) 14:50:47.06 ID:???.net (+101,+30,-31)
    >>369
    馬鹿な人の言っていることは逆に理解が難しいですね
    思考能力のある人が無意識のうちに捨て去っている選択肢を平気で入れ込んでくるので
    「は??」ってなります
    371 : Name_Not - 2014/09/15(月) 14:55:02.54 ID:???.net (+72,-30,-112)
    >>363
    ES6のclass構文を使って継承すればコンストラクタ間もプロトタイプチェーンされる(はず)
    class構文が使えるようになるまでは__proto__かObject.setPrototypeOfを使うしかないね
    それかCoffeeScriptみたいにプロパティのコピーで妥協するか
    372 : Name_Not - 2014/09/15(月) 15:12:04.73 ID:???.net (+57,+29,-4)
    逆にどこまで突っ走るのか楽しみになってきたw
    373 : Name_Not - 2014/09/15(月) 17:42:38.19 ID:???.net (+62,+29,-2)
    >>371
    完全に勘違いしてるw
    ま、書き込み楽しみにしてるよ
    374 : Name_Not - 2014/09/15(月) 18:26:20.61 ID:???.net (+72,+30,-70)
    >>371
    ありがとうございます
    class構文ではコンストラクタ間もチェーンされるとのことですが、本当でしょうか?
    自分がやろうとしていることは、結構実験的なことだという自覚はありますので
    標準の構文では出来なくても仕方ないと思っていますし
    そこまではまだ期待できないかなーと。
    ただ「する手段がない」という現状には困りますが・・
    375 : Name_Not - 2014/09/15(月) 18:34:28.31 ID:???.net (+69,+29,+0)
    >>370
    馬鹿な人は理解できなくて大変ですね
    376 : Name_Not - 2014/09/15(月) 19:05:20.27 ID:???.net (+73,-22,-20)
    http://stackoverflow.com/questions/351409/appending-to-array

    この質問おかしくないですか?
    配列に要素を追加するだけの質問に対して
    pushと答えた回答に
    イイネ的なものが1000以上付いています
    何故ですか?
    377 : Name_Not - 2014/09/15(月) 20:13:02.66 ID:???.net (+63,+29,-2)
    >>376
    1000人いいと思ったからでしょう。
    分かりきった質問をしないで下さい。
    378 : Name_Not - 2014/09/15(月) 21:29:53.03 ID:???.net (+57,+29,-3)
    初心者なら疑問に思う基本的なことだからでは
    379 : Name_Not - 2014/09/15(月) 23:24:37.69 ID:AcGMLL+X.net (+61,+22,-42)
    質問です。
    ここを参考に簡単な計算フォームを作りました。
    http://www.tagindex.com/javascript/form/comp2b.html
    計算結果がinputに表示されるのですが、
    これをスロット形式で豪華に表現したいと思ってます。

    どなたか参考サイトを知りませんか?
    理想としてはこんな感じです。
    http://github.hubspot.com/odometer/docs/welcome/
    よろしくお願いします。
    380 : Name_Not - 2014/09/15(月) 23:35:21.72 ID:G2HM1bVW.net (-13,-11,-2)
    JavaScriptならコードみろよ
    381 : Name_Not - 2014/09/15(月) 23:55:19.21 ID:???.net (+85,+28,-10)
    >>376
    push以外の回答なんて思い付かないけど何が言いたいの?
    382 : Name_Not - 2014/09/15(月) 23:58:49.87 ID:???.net (-11,-29,+0)
    concat
    383 : Name_Not - 2014/09/16(火) 00:10:25.96 ID:???.net (-2,-30,-55)
    arr.reverse();
    arr.unshift();
    arr.reverse();

    ぱっと思いついたコードこれだけど、そっかpush()なんてあるのか、ためになるなぁ。ポチッとな
    384 : Name_Not - 2014/09/16(火) 03:05:57.58 ID:???.net (+88,+30,+0)
    385 : 379 - 2014/09/16(火) 09:58:32.48 ID:???.net (+69,+29,-4)
    >>384
    実は出来るかどうか分からなかったので試してないのですが、出来るんですね。
    やってみます!
    386 : Name_Not - 2014/09/16(火) 11:01:35.19 ID:???.net (+9,-30,-51)
    (function(global){
    global.Date = null;
    global.Date = function(){};
    global.Date = global.__proto__.Date;
    console.log(new global.Date());
    }(window));

    これでDateが復活しないのはなぜですか?
    387 : Name_Not - 2014/09/16(火) 12:43:34.33 ID:???.net (+25,-30,-67)
    >>386
    __proto__野郎はまだ勘違いしてるな…__proto__をいじる必要なんて全くないと言ってるのに
    復活しないのは単に global.__proto__.Date が undefined だから
    388 : Name_Not - 2014/09/16(火) 13:02:04.62 ID:???.net (+2,-30,-67)
    console.log = null;
    console.log = console.__proto__.log;
    ってやると復活します

    どうしたらDateを復活させることができますか?
    389 : Name_Not - 2014/09/16(火) 13:48:46.68 ID:???.net (+36,-29,-71)
    >>388
    console API は標準化されてないけど、その挙動は何らかの仕様で保証されてる?
    保証されてるならソースURLを出して
    390 : Name_Not - 2014/09/16(火) 13:54:35.36 ID:???.net (+96,+29,-8)
    >>389
    今回はわたしが質問しているんで、逆に質問があるのならレスではなく新規に書き込んでいただけますか?
    391 : Name_Not - 2014/09/16(火) 13:54:39.33 ID:???.net (+64,+29,-38)
    難しいことは知りませんぐぐったらこうやったら復活するってでてきました
    とにかくDateを復活さえ出来ればいいんです
    392 : Name_Not - 2014/09/16(火) 16:44:17.83 ID:???.net (+11,-30,-138)
    >>391
    できんね
    __proto__ってのは、そのオブジェクトのコンストラクタのprototypeプロパティの参照じゃ

    んでchromeだとconsoleのコンストラクタにはConsoleってのが定義されてて
    そいつがlogをメソッドとして定義してる
    んが、windowのコンストラクタのWindowはDateなんて持ってない
    393 : Name_Not - 2014/09/16(火) 17:02:34.74 ID:???.net (+50,+22,-31)
    まじすか
    alertは復活できたのにDateだけ出来ないとか許せません
    394 : Name_Not - 2014/09/16(火) 17:27:26.54 ID:???.net (+3,-30,-97)
    console.log = null;

    ってのは、consoleオブジェクトのlogっていうプロパティを殺しただけ

    global.Date = null;

    ってのは、Date自体がコンストラクタなのにそれを消してしまってる
    どうしてもそうする必要があるのなら
    どこかにまるっとコピーしておく必要がある
    396 : Name_Not - 2014/09/16(火) 18:53:57.32 ID:???.net (+70,+29,-29)
    >>390
    仕様から使えるオブジェクトを判断しろ、といいたいところだけど、仕様を読めない人にはわからないだろうね
    397 : Name_Not - 2014/09/16(火) 20:26:59.24 ID:???.net (+57,+29,-35)
    >>395
    文字通りASCIIなら前者だけど、制御文字とか抜いて考えたいとか
    実現したいことによって正規表現は変わるね

    http://ja.wikipedia.org/wiki/ASCII
    を見てみるとよいと思う
    398 : Name_Not - 2014/09/16(火) 21:36:49.10 ID:???.net (+9,-29,-49)
    <script>が増えてきた時って、どのように共通化しているんですか?

    javaを使えば簡単に共通化することは出来ますが、今回はrest(json)を使ってみようかと思っています。
    なので、できればサーバサイドのロジックで共通化はしたくないです。
    399 : Name_Not - 2014/09/16(火) 21:41:55.14 ID:???.net (+4,-30,-114)
    >>398
    RequireJSもしくはそれ相当のものを使う。
    分かりやすく言えばJavaのimportとかinclude的なことができる。

    開発時はメンテナンス性を考えて小さなjsファイルに分割。

    HTMLにはRequreJS読み込みコードのみ。
    あとはRequreJSがjsファイルに書かれた依存関係情報を元に
    jsファイルを読み込んでくれる。

    リリース時はそれらの小さなjsファイルを1つないし
    少数のファイルに結合
    400 : Name_Not - 2014/09/16(火) 22:13:52.33 ID:???.net (+0,-28,+1)
    >> 399
    ありがとうございます。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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