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

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

JavaScript覧 / PC版 /
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter

551 = :

やった!やったよ (´;ω;`)

男性型脱毛症の原因はタンパク質、除去すれば再び豊かな毛髪 - Bloomberg
http://www.bloomberg.co.jp/news/123-M192I56K50ZK01.html

552 = :

>>543
処理内容によっては必要ないデータをスクリプト外に出したいって話なら
jsonやjsonp、あるいはXMLにすればいい
ただし非同期な処理になるのでそこらへんは考慮すること

553 = :

にしてもお前ら要件定義下手糞だな

554 = :

質問も下手すぎだろ

563 = :

板違いなわけだがニコ厨にそれ言っても無駄か
ついでに言うと環境だけのせいじゃない
例えばSQLインジェクションが発生するのは大抵フロントエンドのせいだろ

564 = :

JavaScriptから入った俺としてはもうJavaScript5年やってその意味は理解できてるんだが、
擬似クラスを用いた継承をわざわざ積極的にしようとすることの有効性が未だにわからない。

狙わなくても自然とそれっぽく組んでしまうときもたまにあるけど、
普通そんな書き方よりいいというか、JavaScriptぽい素直な書き方はあるよ。

わざわざクラスっぽいのを使いたがる、クラスを使ってることにしたがる理由は何だろう?

565 = 561 :

>>569
javascriptっぽいってなに?
疑似クラスを用いた継承ってのもjavascriptに包含されてる機能じゃないの?

566 = :

俺が理解できないものは素直な書き方じゃないって言いたいのだろう。

567 = :

俺が理解できないものは素直な書き方じゃないって言いたいのだろう。

568 = :

>>565
その通り何だけど実際そうじゃないじゃん?
JAVAみたいなクラスを実現することに凝る人が多いことに違和感を感じてるってこと

569 = :

>>568
簡単でいいからコード書いてみて。

570 = :

移植や多言語との連携があるなら、
それらとの親和性を大事にする事だってあるんじゃないかな。

571 = :

俺はサーバサイド(java,php)長年やって
ここ2年くらいUI側でJavaScriptだけど
UI側ではクラスは使わないな。
UI描画と入力、バリデーションを
極力シンプルにやらせてる。
サーバとのやりとりはJSONのPOSTのみ。
複雑な処理はサーバで。

572 = :

>>569
書いてみてって?
そもそも自分が普通に書いててクラスが必要になった事がほとんどないから
そんなにJAVAっぽいクラスに凝る必要があるのか疑問なんだ
ニューラルネットワークの実験したときくらいかな、意図的にそういうクラス目指したの

573 = :

>>572
普段書いているクラスと"JAVAっぽいクラス"の違いがよく分からないから、コードで示してほしいなと。

574 = :

え、ニュアンスが伝わらなかった?
JavaScriptにはクラスはない、継承の仕組みもない
それなのにそれらを擬似的に再現したものを、
まるで配列やオブジェクトのように元からあって
当たり前のように扱うことに凝る風習に違和感を感じるって言ってるの
クラスを作ろうと凝って擬似クラス形Aにたどり着いて、
(あたかも元から正式にJSに仕組みが整っているかのように)
ちゃんとクラスを作ったぞ!って考えるのに違和感を感じてるの
目的の事を成し遂げるためにJavaScriptの構文を組み合わせて、
それがたまたま形Aになることはあるけどねって言ってる
要はJAVAみたいな所謂『クラス』はJSにはねーよ!勘違いすんなっ!って言いたいの

575 = :

>>574
大規模開発の経験が無いんじゃないかな。

576 = :

大規模って言えるものは無いかな?あるかな?
開発に15人くらいのプログラマが関わるのが大規模って言うならならあるんだけど
クラス?
一人もそんな言葉自分から言い出した奴は多分いなかったね
俺主導で俺がJS教えた奴らばかりだったからかもだけど?
まあそれがニューラルネットワクの話でクラス使うんだけどね

577 = :

>>576
ある程度の規模になってくると足並みを揃えることが大切だよね。
そういう意味では576は自分が主導する立場に立つことで足並みを揃えられた訳だけど、
世界一般で考えると、やっぱりクラスベースなんだよね。オブジェクト指向の支えもあってね。

"凝った"と批判するけども、サイ本に紹介されるようなクラス定義であれば特別凝った方法だとは思わないし、
それで開発の基盤を築けるならもう使うしか無いよね。たとえばドキュメントなんかもそう。ある程度はっきりとした
"クラスとはなにか”が定義されていないと、今のようなウェブアプリ開発なんてやっていけない。

書き込みを読んでていても、いまいちJSのクラスを批判する理由が分からない。

579 = :

ああ悪かったprototypeを使ったやり方にケチ付けてるんじゃ無いんだ
だがそれは元々言語仕様としてクラスからそれ繋がりで継承が抜群に定義されてる言語でいうクラスとは違う
見せかけのクラスだ、もちろんそれを分かって使うのは素晴らしいことだ

580 = :

それが「見せかけのクラス」だっていう考え方がそもそも違うな
JSでOOPするにはこうしますっていうJSなりの自然なやり方を
お前みたいなアンポンタンにも分かりやすく教えるために
「つまりこれはクラスみたいなもんですよね」って言ってるだけだ

581 = :

だからクラスみたいなものと思うのは良いっすよ
だってクラスみたいなものなのは間違いないじゃない
つうか構造上は実質クラスだし?いやクラスだから

そういう事じゃなくて…………
JSにはクラスという機構があるみたいに思ってそれに凝る風習があるのに違和感感じてるんですよ

583 = :

大規模なものは技巧に走ると破綻する

584 = :

JavaScriptがLISPやScheme系の言語でC++やJavaとは違うってことを受け入れられずに
C++やJavaのようなクラス継承を実現しようと腐心してJavaScriptはクソ言語だと...(省略)

590 = :

>>582
Sampleの定義部とSample2の定義部とを一ヶ所にまとめて書いていいなら、こんな感じかなあ。
横長でごめん。


var Sample, Sample2;
(function enclosure() { // Func1をローカルに隠す関数。説明のためだけに名づけていて、無名関数でも可
    var Func1 = {
        run: function () { alert("run"); }
    }; // 関数enclosure内で作られる関数(Sample, Sample2のインスタンスのメソッド)を介してのみ呼べる

    Sample = function () {}; // コンストラクタ グローバル変数Sampleにローカル関数への参照を入れている
    Sample.prototype.runOnce = function () { Func1.run(); };

    Sample2 = function () {}; // コンストラクタ
    Sample2.prototype = new Sample(); // ※1
    /* 継承。Sample2のインスタンスでメソッドrunOnceを呼ぶと、
    ※1で作られるSampleのインスタンスの、メソッドrunOnceが替わりに呼ばれる(委譲?) */
    Sample2.prototype.runTwice = function () { Func1.run(); Func1.run(); }; // 2回呼ぶメソッドを追加
})();
/* 関数enclosureの定義部が終わってすぐに呼び出している
これ以降で直接 Func1.run(); と呼ぶことはできない
Func1.run を呼ぶメソッドをさらに追加することも、これ以降はできない */

var s = new Sample2();
s.runTwice(); // Func1.run が2回呼ばれる

591 = :

590の続き。Sampleの定義部とSample2の定義部とを離して書きたいなら、
Func1を見えるところに出すしかない。
下の※2のようにSampleにぶら下げておくのが一般的かと思います。


function Sample() {}; // コンストラクタ この場合は関数定義文でもOK
Sample.prototype.runOnce = function () { Sample.Func1.run(); };
Sample.Func1 = {
    run: function () { alert("run"); }
}; // ※2

function Sample2() {}; // コンストラクタ
Sample2.prototype = new Sample();
// 継承。「※2でSampleにぶら下げたFunc1がSample2にもぶら下がる」ということには「ならない」ことに注意
Sample2.prototype.runTwice = function () { Sample.Func1.run(); Sample.Func1.run(); };

var s = new Sample2();
s.runTwice();
/* ここで直接 Sample.Func1.run(); と呼ぶことができるし
Sample.Func1.runを呼び出すメソッドをさらに追加することもできる
Sample.Func1.run 自体を書き換えることでrunOnceの動作も変わることに注意 */

592 = 561 :

>>582
んで、本当にやりたかったことは何だったの?
プロジェクトリーダーの理解は本当に正しかったの?


←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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