ここから本文です

javascriptについて。

coc********さん

2013/6/523:38:31

javascriptについて。

function A(){〜省略};
function B(){~…};
function C(){~…};

function ALL(){
A();
B();
C();
}

①こう記述した場合、A()、B()、C()はALL()の配列に一つずつ当てはめているという事になるのでしょうか?
それともA()、B()、C()は一纏めとして扱われるのでしょうか?

②ALL()をコンストラクタとして、B()の内容だけ改変したALL2()を作成したい場合
function ALL(){
a=A();
b=B();
c=C();
}

var ALL2=new ALL();
ALL2.b=function(){~…};


と定義して、使いたい時にALL2()を呼び出せば、うまくいきますか?
もっと簡単な記述方法はありますか?

短絡的な質問で申し訳ありません。検索して調べろという回答はなしでお願いします><

閲覧数:
150
回答数:
1
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

やまだしさん

2013/6/600:21:39


function ALL(){
A();
B();
C();
}
の場合、ALLは配列ではなく関数です。
この状態で ALL(); を実行すると、A()→B()→C() の順に実行されることになります。



javascriptのオブジェクト指向の書き方は少し特殊で

function Hoge() {
// コンストラクタ
// メンバ変数はthis.○○で指定
this.hoge1 = 1;
this.hoge2 = 2;
}

Hoge.prototype = {
A: function() {
...
},
B: function() {
...
this.A(); // このようにthis.○○とするとメンバ関数を呼び出せます。関数Aを呼び出しています。
}
}

var hogehoge = new Hoge; // 引数がない場合は括弧つけてもつけなくてもOK
hoge.B();

のように書きます。

また
Hoge.prototype.A = function() {
...
}
Hoge.prototype.B = function() {
...
}
のように個別に書いてもいいです。

>B()の内容だけ改変したALL2()を作成したい場合
貴殿がやりたいことを察するに、
function ALL() {
this.A();
this.B();
this.C();
}
ALL.prototype = {
A: function() {...},
B: function() {...};
C: function() {...}
}
var ALL2 = new ALL();
ALL2.B = function() {...};

とすれば良いと思います。

>使いたい時にALL2()を呼び出せば、うまくいきますか?
この状態でALL2を呼び出すと、「A()」→「変更されたB()」→「C()」が順に実行されます。

質問した人からのコメント

2013/6/6 00:55:37

降参 素早くご丁寧な回答、ありがとうございます(o^^o)
おかげでスッキリしました!

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる