基本的なことがわからないのですが、

javascriptのクラスのプログラムはどこにあるのか教えて下さい。

このQ&Aに関連する最新のQ&A

A 回答 (7件)

こんにちは、xruzです。


この質問から見ると、たぶんJava経験者の方でしょうね。
JavaScriptの場合、標準クラスはDLL形式で提供されています。
したがってJavaのようにソースプログラムはありませんよ。

またJavaScriptではクラスのことをオブジェクトと言います。

JavaScript初心者の方なら「とほほ」さんのサイト(下記URL)をご紹介します。

がんばってくださいね(~:~i

参考URL:http://tohoho.wakusei.ne.jp/js/index.htm
    • good
    • 0
この回答へのお礼

ご回答有り難うございます。
私はJava経験者ではありません。まったくの初心者です。
マニュアルは読んだことがあるだけです。
JavaScriptに関してもマニュアルを読んだのですが、
クラスがいったいどこにあるのかが解りません。

>JavaScriptの場合、標準クラス(オブジェクトですね)
はDLL形式で提供されています。

上記の意味が解らないのです。
私は勘違いしてしまってるのかもしれません。
すみませんが、再度教えて下さい。

お礼日時:2002/02/26 14:24

> IE4、IE5、NN4.x、NN6 程度はブラウザを判断し、


> それぞれのプログラムを書いてあるものが、
> わりとあるのでしょうか?

統計をとったわけではないのですが、(私が)想像しているよりもあるなあ、という感じです。
というのも、それなりに面倒なことなので、手を抜いても不思議じゃないという感覚があるからです。

私が普段使っているブラウザは NN4.x 系です。で、それでまともに見られないものを IE5 で見る、という
使い方をしています。

でも、意外と IE5 を使わないです。NN4.x でもいけるページが結構ある、という感覚はそこから
来ています。まあ、そのうちには「ブラウザを意識しなくても問題ないコードだけで構成されている」ページも
相当量あるのでしょうが。

また、NN4.x 系で駄目なページのうちのほとんどは JavaScript の問題ではなく

・table タグが閉じられていない
・外部スタイルシートのリンクが切れてる

が原因で見られない、という感じです。

# 前の回答でも断ってますが、あくまでも *私見* ですよ
# そういう意味で、世間一般に当てはまるかどうかが分からないので、自信無し、としておきます (^^;
    • good
    • 0

xruz> 2.ブラウザを判断し、それぞれのプログラムを書く。


 ...
xruz>     2.の場合はとんでもないものになってしまうでしょうね。

その「とんでもないもの」を仕方なく作っている人たちも結構いたりします。

ただ、「ブラウザを判断し」といっても、世の中には星の数ほどではないが二桁くらいは
ブラウザの種類があるので、その全てを、って訳にはなかなかいきません。

せいぜい IE4、IE5、NN4.x、NN6 程度までが限界です。

最近(この1~1年半くらい)は、割り切って IE5 で動けば良いや、みたいなページも
増えたような気がします。

# あくまで、私見です
    • good
    • 0
この回答へのお礼

ご回答ありがとうござとうございます。


IE4、IE5、NN4.x、NN6 程度はブラウザを判断し、
それぞれのプログラムを書いてあるものが、
わりとあるのでしょうか?

お礼日時:2002/03/01 11:29

おはようございます、xruzです。



>ブラウザーによってJavaScriptが違うということになりますね
はい、そうですよ。

>どのように対処するのでしょうか?
対処方法は、二通りあります。
1.共通に使えるものしか使わない。
2.ブラウザを判断し、それぞれのプログラムを書く。
 但し、バージョンによっても違いますのでバージョンを判断し
 各々のバージョンに合ったプログラムも書く。
 そして、JavaScriptが動作しないブラウザもあるので、
 その対処もしておくことを忘れないでね。

1.の場合つまらないものになってしまいますし、2.の場合はとんでもないものになってしまうでしょうね。
どこで割り切るかでしょう。見てくれる人に不快感を与えないように気をつけることが大事だと思います。

質問内容が変わったら、新規質問でお願いします。
    • good
    • 0

こんばんは、xruzです。


あはは、勘違いしましたか、ごめんなさい。
「クラス=プログラム」はJava初心者の方が多く勘違いされるので、ついJava経験者だと思ってしまいました。

初心者の方であれば、「javascriptのクラスのプログラムはどこにあるのか」を知る、または意識する必要はありません。
基本的にはWindowsの場合、ブラウザをインストールしたディレクトリ配下の、拡張子がdllというファイルの、どれかの中に関数(?)として存在します(単体のプログラムとしては存在しません)。

どこにあるかよりも、どんなクラス(オブジェクト)があるかのほうがJavaScriptを勉強する上では重要ですよ。
どんなクラス(オブジェクト)があるかは「とほほ」さんのサイトで勉強してくださいね。

がんばってくださいね(~:~i
    • good
    • 0
この回答へのお礼

有り難うございました。

私はJAVAとJavaScriptがごちゃまぜになっていました。
別のものなんですね。

でも、ということはブラウザーによってJavaScriptが違うということになりますね。
どのように対処するのでしょうか?

お礼日時:2002/02/27 08:52

ユーザ定義のクラスを定義する場合には、JavaScript のコードとして記述します。


このあたりの書き方を知ると「ああ、Java と JavaScript は別物なのだなあ」と実感できます。

書き出すと、それなりに大変なので、参考URLに手がかりを示します。
それ以上のことが知りたければ、補足してください。

ビルトインされているクラスについては No.2 の xruz さんが書いている通りです。

参考URL:http://developer.netscape.com/docs/manuals/commu …
    • good
    • 0

質問の意味がわかりません。


JavaScriptのクラスのサンプルを探しておられるのでしょうか?
書く場所がわからないのでしょうか?

この回答への補足

全くの初心者なので、質問の仕方が悪くてすみません。

javascriptについてのマニュアルを見ると、
オブジェクトを生成するのにクラスが必要だとあるのですが、
この元のクラスのプログラムとはどこにあるのもなのかがわからないのです。

補足日時:2002/02/26 08:27
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Qjavascriptの基本的なことだと思います。google map

google mapをサイト内にとりこめると知って、
挑戦しています。
一応、googleのサイトにあったjavascriptを埋め込んで、
表示できるようになりました。
その中に、

document.createTextNode("~~~~~~~"));

というのがありまして、
~~~のところに文字を入れると、
googleマップに吹き出しが出てメッセージが出るようになります。
~~~の部分が長文になると、吹き出しが横に長くなってしまいます。
改行したいのですが、どうしたらよいのでしょうか?

Aベストアンサー

そのコードを見てみないことには正確に言えませんが、とりあえず。

createTextNodeメソッドはテキストノードを作るメソッドなので、そこで改行を宣言することは出来ません。
改行を宣言するには createElement() でbr要素ノードを作ってください。

NG:
document.body.appendChild(document.createTextNode("test\ntest"));

OK:
var node = [document.createTextNode('test'),document.createElement('br'),document.createTextNode('test')];
for(var i=0,max=node.length;i<max;i++){
document.body.appendChild(node[i]);
}

「JavaScript DOM」で検索すると関連情報が見つかります。
HTMLの予備知識があればDOMは比較的理解しやすいと思います。

document.createElement - 指定タグでのエレメント作成 - JavaScriptリファレンス
http://javascriptist.net/ref/document.createElement.html
JavaScript : createTextNode
http://www.openspc2.org/JavaScript/reference4/DOM/createTextNode/index.html
element.appendChild - 指定要素へ子要素追加 - JavaScriptリファレンス
http://javascriptist.net/ref/element.appendchild.html

そのコードを見てみないことには正確に言えませんが、とりあえず。

createTextNodeメソッドはテキストノードを作るメソッドなので、そこで改行を宣言することは出来ません。
改行を宣言するには createElement() でbr要素ノードを作ってください。

NG:
document.body.appendChild(document.createTextNode("test\ntest"));

OK:
var node = [document.createTextNode('test'),document.createElement('br'),document.createTextNode('test')];
for(var i=0,max=node.length;i<max;i++){
document.bod...続きを読む

Q最近Javascriptの勉強を始めたのですがどこが違うかわかりません。

プログラミングの経験はないです。JavaScriptの勉強を最近を始め、簡単なじゃんけんのゲームを作っているのですが、プログラミングが作動しない原因はわかりません。間違って居る場所を教えて下さい。



// 数値の設定
var G = 1;
var C = 2;
var P = 3;

// 入力ダイアログ
var user = prompt(G + ':ぐー\n' + C + ':ぱー\n' + P + ':ちょき\n\n' + '※半角で数字を入力してください' );
user = parseFloat(user);

// 入力値のチェック
if (user !== G && user !== C && user !== P) {
alert('入力値を認識できません。再読み込みしてください。');
} else {

// コンピューターの手
var com = Math.floor(Math.random() * 3) + 1;

//コンピューターの手の名前
var comHand = '';
switch (com) {
case G:
comHand = 'ぐー';
break;
case C:
comHand = 'ちょき';
break;
case P:
comHand = 'ぱー';
break;
}
// 結果の判定
var Result = '';
if (user === com) {
Result = '引き分けです。';
} else if ((com === G && user === P) || (com === C && user === G) || (com === P && user === C)) {
Result = 'あなたの勝ちです。';
} else {
Result = 'あなたの負けです。';
}
// 結果の表示
Result = Result 'コンピューターの出した手は「' + comHand + '」でした。' ;
alert(Result);
}

プログラミングの経験はないです。JavaScriptの勉強を最近を始め、簡単なじゃんけんのゲームを作っているのですが、プログラミングが作動しない原因はわかりません。間違って居る場所を教えて下さい。



// 数値の設定
var G = 1;
var C = 2;
var P = 3;

// 入力ダイアログ
var user = prompt(G + ':ぐー\n' + C + ':ぱー\n' + P + ':ちょき\n\n' + '※半角で数字を入力してください' );
user = parseFloat(user);

// 入力値のチェック
if (user !== G && user !== C && user !== P) {
alert('...続きを読む

Aベストアンサー

こんにちは

>プログラミングが作動しない原因はわかりません。
直接の原因は、最後の方の
>Result = Result 'コンピューターの出した手は「' ~~
が、SyntaxErrorになっています。
 Result += 'コンピューターの出した手は「' ~~
 Result = Result + 'コンピューターの出した手は「' ~~
などとしてください。

ブラウザでテストしているなら、F12キーで「開発ツール」が表示できるものが多いですから、これを利用することでエラーを確認することができるはずです。

内容的には、勝ち負けの判定におかしなところがあるようですので、場合分けを再確認してみてください。

QJavaScriptでVBのOption Explicitのように変数の明示的な宣言を強制することは不可能?

たぶんできないのだとは思いますが、ダメ元で質問です。
JavaScriptでVBのOption Explicitステートメントのように、変数の明示的な宣言を強制することはできないのでしょうか?
調べた限りでは、なさそうですが、将来的に言語使仕様が変わる云々の可能性も含めてコメント頂けると幸いです。

できないとすると、変数のタイプミスによるバグの発見が大変だと思いますが、皆さんはどのように工夫してデバッグされていますか?

Aベストアンサー

質問の題にある点については、詳しくないのでちょっとお答えできませんが、デバッグ作業のことについて。

私の場合はブラウザに実行させて、それぞれのブラウザが出すエラーレポートを参考にしてデバッグしています。

Netscape7.1は、ツールメニューのWeb開発という項目内にあるJavaScriptコンソールでエラーをチェックできます。 エラーの起きている問題の行や、エラーの内容を記録して表示してくれるので、なかなか便利です。
Opera7.11にも、「ウィンドウメニュー」の中の特殊ウィンドウに含まれるJavaScriptコンソールがあり、これも一応エラーを辿る時に使えます。
IEも、エラーを出すとステータスバー上のアイコン表示が出ますので、それをダブルクリックして出てくるダイアログ上の詳細情報で、エラーの起きた動作を拾えます。 ただし、IEで提供されるJavaScriptのエラー情報は非常に断片的で、デバッグする時には少々力不足なところがあります。

変数のタイプミスくらいであれば、上記のいずれでも異常を見つけられます。 ただ、オブジェクトやステートメントのタイプミスなどになると、IEの情報では検知し難くなるので、IEでは原因がつかみきれないエラーは、Netscape7.1のJavaScriptコンソールを使って探しています。
IEのみで動作するスクリプトについては、どうしてもIEのエラー情報からバグのある部分を推定して、問題を探し出す必要がありますが、クロスブラウザで動作するスクリプトの場合はほとんどのデバッグ作業はNetscape7.1上でやっています。

なお、Netscapeは4でもJavaScriptコンソールを実装していたと思います。 NetscapeでJavaScriptの動作に問題があったときには、アドレスバーに「javascript:」と記入して実行すると、JavaScriptコンソールが立ち上がると思います(最近のNetscapeでも同じ手順でJavaScriptコンソールを起動できます)。

私はこのような感じでデバッグを行っています。 参考になれば…

質問の題にある点については、詳しくないのでちょっとお答えできませんが、デバッグ作業のことについて。

私の場合はブラウザに実行させて、それぞれのブラウザが出すエラーレポートを参考にしてデバッグしています。

Netscape7.1は、ツールメニューのWeb開発という項目内にあるJavaScriptコンソールでエラーをチェックできます。 エラーの起きている問題の行や、エラーの内容を記録して表示してくれるので、なかなか便利です。
Opera7.11にも、「ウィンドウメニュー」の中の特殊ウィンドウに含まれるJavaS...続きを読む

Q基本的なことだと思うのですが…。

基本的なことだと思うのですが、教えてください。
(1)よくソースにある「-----」という表示は何を意味しているのですか?
 例えば<!-------TABLE1------>とかありますよね?
(2)「//」は何を意味していますか?
 例としては  //住所 if(!Hissu_chk('shop',null,以下省略…
 等というように使われていますよね?
 後にくるのはテキストが多いと思うのですが、どういった意味があるのでしょうか?

基本的で恐縮ですが回答お願い致します。

Aベストアンサー

もう他の方の解答もついてますが、一応、答えます。

> 「コメント」とは

そのまま訳すと「注釈」、ただしがきのことです。

例えば、HTMLの方だと、表は <TABLE> タグで表しますが、
一行毎に <TR> タグが、ひとつのセル毎に <TD> タグが
ぐちゃあっとついて、表の内容よりもタグの方が多くなったり
して、ソース自体を見ても良くイメージがつかなかったりします。

で、その固まりの前に、

<!-- ここから表1だよ -->

なんて入れておくと、後で読むときの理解の助けになるだろう
ということです。

JavaScript の方は更に、略号の固まりになりますから、
おおざっぱに何の処理をしているのだ、と書いておくと、

  // 正しい住所が入力されているか?
  if (! Hissu_chk ...

後で、何のつもりのコードだったかな、と思い出す助けに
なります。

QJavascriptでのクラスの作り方について

ご存じの方ご教示願います。

Java Scriptで下記のようなクラス(VBで言うところの構造体)を作成したいのですが・・・
当方Java Scriptは勉強中で、ほとんどわかっておりません。すみませんが宜しくお願いします。

adata[i1].ii
adata[i1].ij
adata[i1].axis[i2].x
adata[i1].axis[i2].y
adata[i1].color[i3]

※各配列の範囲は以下の通りです。
i1=0~100
i2=0~3
i3=0~2

Aベストアンサー

function myClass(){
//処理化は適当に・
this.ii="ii";
this.ij="ij";
this.axis=new Array();
for(var i=0;i<4;i++){
this.axis.push(new innerClass());
}
this.color=new Array(3);
for(var i=0;i<3;i++){
this.color[i]="#FFF";
}
}
function innerClass(){
this.x="x";
this.y="y";
}

var adata = new Array();
for(var i=0;i<101;i++){
adata.push(new myClass());
}
//
alert(adata[50].ii);
alert(adata[100].ij);
alert(adata[10].axis[3].x);
alert(adata[10].axis[0].y);
alert(adata[0].color[2]);

function myClass(){
//処理化は適当に・
this.ii="ii";
this.ij="ij";
this.axis=new Array();
for(var i=0;i<4;i++){
this.axis.push(new innerClass());
}
this.color=new Array(3);
for(var i=0;i<3;i++){
this.color[i]="#FFF";
}
}
function innerClass(){
this.x="x";
this.y="y";
}

var adata = new Array();
for(var i=0;i<101;i++){
adata.push(new myClass());
}
//
alert(adata[50].ii);
alert(adata[100].ij);
alert(adata[10].axis[3].x);
alert(adata[10].axis[0].y);
...続きを読む


人気Q&Aランキング

おすすめ情報