のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,646,406人
昨日: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 (+5,-18,-218)
>>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,-1)
さすが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,-98)
非標準だからこそ一般的方法を探してるんですが?
プロトタイプチェーンは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,+27,-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,-74)
一般的なOOPでクラスメソッドを継承出来ないのは無論分かってますよ?
プロトタイプ言語ならではのことを実現したいと考えただけです
技術者としての本能と言えるでしょう
364 : Name_Not - 2014/09/15(月) 14:24:13.40 ID:???.net (+57,+29,-40)
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 (+90,+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,-19)
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 (+60,+21,-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,+29,-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,-56)
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,-139)
>>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,-135)
>>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 スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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