5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

JavaScript JScriptってどうよ

1 :Mr. J:02/05/17 23:54
ここでこっちへ逝くよう言われたのでこっちへ来てみました。
http://pc.2ch.net/test/read.cgi/win/1021566844/l50
JScript.Netなんてのもありますよね。
JScriptはブラウザのあるところならどこにでもあるので軽く知ってお
くと便利な気もするんですけど。


↓Windows スクリプト テクノロジのヘルプから引用

JScript
インターネット向けに特別に開発された Microsoft の強力な
スクリプト言語です。JScript.NET は Microsoft の ECMA
262 規格に準拠した次世代の言語です。ECMAScript Edition
4 と併せて現在開発が進められている JScript.NET では、完
全コンパイル済みコード、型付き変数および型なし変数、クラ
ス (継承、関数のオーバーロード、プロパティ アクセサなど)、
パッケージ、クロス言語のサポート、.NET Frameworks へのア
クセスなど、さまざまな改良が組み込まれています。


JavaScript関係の勉強ができる所
ttp://member.nifty.ne.jp/aya/
ttp://www.tokumaru.org/JavaScript/index.htm

Script Encoderの落とせる所
http://msdn.microsoft.com/downloads/default.asp?URL=/downloads/sample.asp?url=/msdn-files/027/001/789/msdncompositedoc.xml

Script Decoderの落とせる所(使ったことないです)
http://www.astalavista.com/hacking/win/scrdec.shtml

2 :デフォルトの名無しさん:02/05/17 23:58
<XML>
 <SHINE>

  ,,,,,,,,,,,,,,,∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,,,,ミ,,゚Д゚彡<  Delphiばんざーい
 UU"""" U U    \_________

 </SHINE>
</XML>


3 :デフォルトの名無しさん:02/05/18 00:00
プロトタイプ方式ってよくわからん...

4 :デフォルトの名無しさん:02/05/18 00:01
JavaScriptは便利だね。
ブラウザで動作させられるし。
ファイルへのアクセスが出来ればもっと便利なんだけどな・・・

5 :デフォルトの名無しさん:02/05/18 00:03
これってweb製作板ネタじゃないの?

6 :デフォルトの名無しさん:02/05/18 00:05
Rhinoとか、ブラウザ非依存の処理系って知名度
ないよね...

7 :デフォルトの名無しさん:02/05/18 00:05
JScriptってVBScriptも含んでるんだっけ?

8 :Mr. J:02/05/18 00:06
>>2

ご存じないのかもしれませんけどJavaScriptはclassを定義で
きるんです。
例えばどこにいてもWeb上にclass群を置いておけば再利用きる
んです。(インターネットを利用できれば)
外部読みこみの"*.js"のファイルは関数を投げ込んでおくのに
しか使えないわけではないです。

9 :デルパイ氏ね ◆VB6.V49. :02/05/18 00:08
VBScriptも扱え

10 :Mr. J:02/05/18 00:08
>>4

ちゃんとできます。
ここにも書いてあるんですけど。
http://pc.2ch.net/test/read.cgi/win/1021566844/l50


//class Horse
function Horse(name, age, isMale){
this.name = name;
this.age = age;
this.isMale = isMale;
this.toString = HorseToString;
}

function HorseToString(){//Horse classのメンバ関数toString
var str = this.name + "は" + this.age + "歳(" + ((this.isMale) ? "オス" : "メス") + ")";
return str;
}

//class Zebra extends Horse
function Zebra(name, age, isMale, stripeCount){
//スーパークラスのコンストラクタ呼び出し
Horse.call(this, name, age, isMale);
//追加されたメンバ変数の初期化
this.stripeCount = stripeCount;
}
var h = new Horse("Bill", 4, true);
var z = new Zebra("Jane", 3, false, 382);
var fso, file, fileName;

fileName = "utuda.txt";
fso = new ActiveXObject("Scripting.FileSystemObject");
file = fso.createTextFile(fileName, true, false);

file.writeLine(h);
file.writeLine(z);
file.close();

new ActiveXObject("WScript.Shell").run(fileName);
//参照を解除してごみにする。
fso = file = null;

11 :デフォルトの名無しさん:02/05/18 00:11
クラスがなんぼ作れたところで
単体ではファイルもビデオメモリも操作できない言語は
やはりマウスストーカーで終わり

12 :Mr. J:02/05/18 00:12
>>5
classとか継承とか言い出すと範疇を外れてしまうんです。
JScriptはWebだけじゃなくてWSHとかHTAとかFLASHとかいろんな所で使えますから。

13 :デフォルトの名無しさん:02/05/18 00:15
正直、JavascriptをWebとは関係なくローカルで
走らせるのってあんまメリットない気がする
(ある意味mozillaはすごい。). 実行系を
事実上標準装備しているのはWindowsだけだし、
Windows上でOSの各種サービスを使うならVBScriptの
ほうがしっくりくる。構文とかはVBScriptより
JScriptのほうが好きだけど。

14 :Mr. J:02/05/18 00:17
>>9
VBScriptについて詳しくないですし、私の知っている範囲で
はVBScriptは変数とかオブジェクトの宣言と同時に初期化で
きないので面倒なことになります。

15 :デフォルトの名無しさん:02/05/18 00:18
>>10
それどっちかというとWSHの力だよな。
JavaScript、JScript、JScript.NETを
WEBブラウザで使うのかWSHで使うのか.NET Framework上で使うのか
とかはっきりしないと中途半端なスレで終わるような気がするけど。
しかもWEBブラウザを対象にするなら板違いだし、
WSHなら他にスレあるけど盛り上がってないし。

16 :デフォルトの名無しさん:02/05/18 00:20
まれにみる良スレ
でもsage

17 :デフォルトの名無しさん:02/05/18 00:21
このスレはJScript.NETのスレになりました

18 :hc2 morf ◆8XVajy8s :02/05/18 00:21
HSPスレを見る限りではJScript.NETの情報を求める声が多かった。
なぜHSPスレでJScript・・・?

19 :デフォルトの名無しさん:02/05/18 00:24
ECMA262のレベルのオブジェクト指向のやり方って、クラス方式じゃ
なくて、プロトタイプ方式じゃないの?
>>10 のコードもぱっと見でそんな感じするんだけど。
JScriptでなんか構文の拡張とかあったの?

20 :デフォルトの名無しさん:02/05/18 00:24
JavaScript > つまらん
JScript+WSH > 将来性なし+制限多し
JScript.NET > ウマー

21 :Mr. J:02/05/18 00:25
>>13
Webとは関係なく走らせるんじゃなくてWebでもWSHでも
FLASHでもHTAでも再利用可能なオブジェクトを作成で
きるといいたいわけです。

22 :デフォルトの名無しさん:02/05/18 00:26
>>19
Javaに近い構文のクラス定義が出来るようになったよ

23 :デフォルトの名無しさん:02/05/18 00:26
>>21
無理だろ。

24 :デフォルトの名無しさん:02/05/18 00:26
Win板のWSHスレで既出なんだけど、こういうスレにありがちな
「プログラムできました」とかいって全コードを載せるのは控えて欲しい。

http://pc.2ch.net/test/read.cgi/win/1009175619/964-965

25 :デフォルトの名無しさん:02/05/18 00:27
>>24
ソース全く上げずに他言語攻撃するよりはまったりしていてよし。

26 :Mr. J:02/05/18 00:30
>>15

WSHでなくてもclassは再利用できるんです。
ファイルの出入力を強調したいわけじゃなくてclassの再利用について強調したいんです。
>>10

を見てもらえばわかるようにクラスを作成してWeb上に置いておけば誰でも
いつでも再利用できるんです。

27 :デフォルトの名無しさん:02/05/18 00:32
>>25
「全コード」って言ってるやん。
要は他の言語スレと同じ。要点まとめろと。

28 :デフォルトの名無しさん:02/05/18 00:32
それなら
ActiveXコントロールのがまだいいや
(´∀` )

29 :19:02/05/18 00:34
>>22 ありがとう。そうか、仕様追加されたんだ。
うーん、でも >>10 のコードを見る限り ECMA262 のプロトタイプ
の範疇だと思うんだけど、JScriptで追加されたクラス定義の
やりかたを誰か教えてくれないでしょうか。


30 :Mr. J:02/05/18 00:35
>>19
申し訳ないです。プロトタイプ方式というのを知りません。

31 :デフォルトの名無しさん:02/05/18 00:36
>>29
http://www.microsoft.com/japan/msdn/columns/scripting/scripting07142000.asp

近いかな?ちゃんと読んでないけど。

32 :デフォルトの名無しさん:02/05/18 00:37
// 関数を class ステートメント内にラップします。
class Car
{
// クラス メンバを宣言します。この例では型を使用しましたが、
// 使用しなくてもかまいません。クラスを 'expando' としてマークすれば、
// これらのメンバを宣言する必要はありません。
var make : String;
var color : String;
var year : int;

// 古いコンストラクタ関数はそのまま。
function Car(make, color, year)
{
this.make = make;
this.color = color;
this.year = year;
}

// 関数をクラス内に移動します。
function GetDescription()
{
return this.year + " " + this.color + " " + this.make;
}
}

// 新しい Car オブジェクトを作成して使用します。
var myCar = new Car("Accord", "Maroon", 1984);
print(myCar.GetDescription());


http://www.microsoft.com/japan/msdn/columns/scripting/scripting07142000.aspより



33 :デフォルトの名無しさん:02/05/18 00:38
良かったな>>1。どうやら袋叩きには遭ってないようで。

34 :デフォルトの名無しさん:02/05/18 00:38
>>33
割と望まれてる子だし。JS.NET。

35 :デフォルトの名無しさん:02/05/18 00:40
VBScriptには未来はないということでよろしいか?

36 :Mr. J:02/05/18 00:41
>>33
はじめはどうなるかとドキドキして必死でがんばりました。

37 :デフォルトの名無しさん:02/05/18 00:41
>>35
これまでもあったのか?

38 :デフォルトの名無しさん:02/05/18 00:41
>>35
VBScriptはMS製品の共通言語でしょ?
WordでもExcelでもASPでも使うし。

39 :デフォルトの名無しさん:02/05/18 00:42
完全に絶たれた、ということで

40 :デフォルトの名無しさん:02/05/18 00:42
VBAの方が深刻だと思われ。
中途半端に普及して・・・。

41 :デフォルトの名無しさん:02/05/18 00:42
まだ気は抜くな。土日が待ってる。

42 :デフォルトの名無しさん:02/05/18 00:43
なぜM$はこの期に及んでVB.NETなど出したのだろう・・・

43 :デフォルトの名無しさん:02/05/18 00:44
>>42
旧VBプログラム(Notプログラマ)コンバータ。

44 :デフォルトの名無しさん:02/05/18 00:45
スレ違いですよ>VBScript,VBA,VB.NET

45 :デフォルトの名無しさん:02/05/18 00:46
なぜかVB系のSetステートメント好きだな
Set Object=object
ああこれぞオブジェクト

46 :デフォルトの名無しさん:02/05/18 00:47
このスレでは何を話し合うつもりだ?>1
JavaScriptとJScript、JScript.NETの共通部分なんて微々たる物だし、
JavaScriptならWeb、JScriptならWSH、JScript.NETなら.NETそれぞれのスレに話が行くし

47 :デフォルトの名無しさん:02/05/18 00:47
>>46
>JScript.NETなら.NET
逝かないから困ってるんですが?

48 :デフォルトの名無しさん:02/05/18 00:48
>>46
せっかく良スレになってきてるのに沸いてくるなよ。

49 :19:02/05/18 00:51
>>32
ありがとう、そうか、classって識別子を導入したんだね。
>>30
クラス方式ってのはclass定義をあらかじめ行ってから
オブジェクトを生成するやり方。プロトタイプ方式は
オブジェクトを生成してから、あと付けでプロパティや
メソッドをがんがん追加していくやり方。
prototypeプロパティを使い始めるとクラスを使っていた
わけじゃないのが理解できると思う。

50 :19:02/05/18 00:54
http://blade.nagaokaut.ac.jp/~poffice/news2/fj.comp.lang.java/1489
を読むとわかるかも。それか、この人が書いた
http://www.ascii.co.jp/books/detail/4-7561/4-7561-3871-3.html
か。

51 :デフォルトの名無しさん:02/05/18 00:58
ま、需要があれば自ずからスレ伸びるよ。しばらく様子見たれ。

52 :Mr. J:02/05/18 00:59
>>49
丁寧な解説ありがとうございます。実は、JavaScriptの勉強
をするのにJavaの本を買ったりして勉強したんです。という
かJavaScriptの解説本を読んでJavaScriptを理解できる人は
天才だと思います。なにしろ、いきなり関数の再起呼び出し
をやってるコードを示してVBより簡単とかいってますから。
普通new演算子が出てきた時点でJava本に走ると思います。

53 :デフォルトの名無しさん:02/05/18 01:03
javaを一から勉強したいんだけど何かお勧めの本ない?

54 :デフォルトの名無しさん:02/05/18 01:04
>>53
だからな、スレ違いなんだよ。

55 :デフォルトの名無しさん:02/05/18 01:05
今現在
糞スレばかり上がってるな(´∀` )

56 :Mr. J:02/05/18 01:08
>>46
オブジェクト指向の考え方は書いたコードをいかに効率的に再利
用するかという要請によって誕生したと理解しているので、
Web, WSH, FLASHなどで再利用できるとしたら結構素敵かと思って。
知ったらみんなちょっとうれしいかな。なんて考えただけです。

57 :デフォルトの名無しさん:02/05/18 01:08
>>53
スレ違い。

>>52
JavaScriptの本ってほとんどWeb系の本ばっかりだから、
純粋に言語として扱っている本がないのは致命的。
誰か久野先生以外の本、知ってたら教えて下され。


58 :デフォルトの名無しさん:02/05/18 01:10
> Web, WSH, FLASHなどで再利用できるとしたら結構素敵かと思って。
> 知ったらみんなちょっとうれしいかな。なんて考えただけです。

やっぱうれしがるのはWEB板の人かなぁなんて思うのよね…


59 :Mr. J:02/05/18 01:13
>>53
Java言語プログラミングレッスン(上)(下)
参考としては
明解C言語入門

60 :デフォルトの名無しさん:02/05/18 01:17
JavaScript,JScript等は、
ブラウザをフォームに見立てれば、立派なプログラミング言語だと思うが。

61 :Mr. J:02/05/18 01:17
ごめん訂正。

Java言語プログラミングレッスン(上)(下)
結城 浩 (著)

参考としては
明解C言語 入門編
柴田 望洋 (著)


62 :Mr. J:02/05/18 01:19
>>55
どこいきゃいいんだ?

63 :デフォルトの名無しさん:02/05/18 01:21
>>62
フサギコと心中も一興

64 :デフォルトの名無しさん:02/05/18 01:22
なんつーか、 1 が痛々しい。61なんて59,61なんて
周りの空気読めてないし。スレ違いだってみんなが指摘
しているのになぜ続けるか。再利用の話もうわっつら
な理解だけで言葉を並べているだけ。とりあえず、落ち着け。

Javascriptのスレがあること自体には反対しません。はい。

65 :デフォルトの名無しさん:02/05/18 01:26
だからとりあえず落ち着いて様子見するべ。
需要があれば自ずから(略

66 :デフォルトの名無しさん:02/05/18 01:31
Javaと混同するやつが後を絶たんのでオンリーJScriptスレにしてほしい。

67 :デフォルトの名無しさん:02/05/18 01:32
1の母で…以下は省略されました

68 :Mr. J:02/05/18 01:44
>>64


気が短くて申し訳ありません。

別に知識をひけらかしたくて参考文献を示したわけではないです。
ちょっとした皮肉のつもりでした。

JScriptは正規表現をサポートしておりWindows環境のあるところな
らどこでもつかえる便利な言語であると認識しています。Perlでい
いという人もいるでしょうけど普通Perlはサーバーよりの環境にし
か突っ込まれていません。それに、普通UNIXのあるところにしかな
いですしね。JScriptのほうが設置ベースが大きいのです。それに
会社のパソコンの管理なんかやるにしても開発環境が無料というの
は結構お得だと考えます。

69 :デフォルトの名無しさん:02/05/18 01:49
でもPerlの方が使いやすいし、ただには変わりない。
つーかご高説は聞きたくない。実になる話をしてオクレ。

70 :デフォルトの名無しさん:02/05/18 01:54
ミガデター━━━━━(゜∀゜)━━━━━━!!!! 

71 :デフォルトの名無しさん:02/05/18 01:55
ローカルリソースへのアクセスが標準化されてないのはいたい。
WSHにしてもmozilla(rhino)にしてもそれぞれ独自のやり方でしか
ファイルアクセスできない。手軽に正規表現でテキスト処理できる
って感じじゃないんだよなぁ。だから常用のスクリプトにはしてないや。
使うのは、特定のファイルのコピーのやり方をメールで指示するときに
.jsファイルをメールに添付して「ダブルクリックしろ!」とかいうときくらいだ。


72 :Mr. J:02/05/18 01:58
>>71
ですから、そういうことについて語ってほしかったわけです。
別に俺が教えてやるといっているわけじゃないんですから。

73 :デフォルトの名無しさん:02/05/18 02:02
JavaScriptつーとこういうのもあるな。
http://sash.alphaworks.ibm.com/
http://www-124.ibm.com/developerworks/oss/sashxb/


74 :71:02/05/18 02:07
すまんが、72がなぜおれに絡んでくるのか、だれかわかりやすく
解説してくれんか? 理解できん。

>>73
IBMも処理系ネタ好きだよね。alphaworksみていると、それ業務で
やってんのかってのがいろいろあって楽しい。

75 :デフォルトの名無しさん:02/05/18 02:13
>>74
皆にそういった話題をして欲しかったってことじゃないの?
絡んでるわけじゃないと思われ。

スレ終了に持って逝きたがる輩が多いからね。

76 :Mr. J:02/05/18 02:23
>>74
申し訳ないです。あなたは別に煽ってもいませんし私の落ち度です。
ちょっと気が立ってました。反省してます。

77 :デフォルトの名無しさん:02/05/18 02:34
JavaScriptのちょっとだけ濃い話
ttp://www.geocities.co.jp/SiliconValley-PaloAlto/5042/

JavaScriptで圧縮とか暗号化とかしてみる
ttp://www.goice.co.jp/member/mo/amuse/javascript/expert/

78 :デフォルトの名無しさん:02/05/18 02:41
JavaScript使用のサイト・リローダー

>リローダーっす。(悪用厳禁)
http://www.hoops.livedoor.com/~himajin_ch/reloader.htm

79 :デフォルトの名無しさん:02/05/18 02:41
参考に。

ECMAScript Language Specification, 3rd edition
http://www.ecma.ch/ecma1/STAND/ECMA-262.HTM

書籍で個人的によかったのは
「JavaScript第3版」David Flanagan(オライリー)

80 :デフォルトの名無しさん:02/05/18 04:51
JavaScript、JScriptとJScript.NETって一緒くたにして語るべきもんなの?

81 :デフォルトの名無しさん:02/05/18 08:22
>>80
Javascript + JScriptはともかくとして、
JS.NETは混同してはいけないだろう。

VBとVB.NETを同じスレで扱うようなもの。

82 :デフォルトの名無しさん:02/05/18 11:06
>>81
何が問題かわからん
途中から説明してくれ

83 :デフォルトの名無しさん:02/05/18 14:59
JScriptは気に入っている言語の一つではあるが、
本気でオブジェクト指向しようとすると記述がものすごく面倒なのがつらい。
tokumaru.netの継承サンプルとかすごいよ。

実用的なコードを出すとプラットフォーム依存になってしまうがそれでも良いか。
Flashは知らないし。

あとJScript.Net使うくらいならC#を使いたいところ。
VSAではC#使えないらしいので、JScript.Netも出番ありか。

84 :デフォルトの名無しさん:02/05/18 15:21
それっぽいnewsgroup
ニュースサーバ msnews.microsoft.com
グループ名
 microsoft.public.dotnet.languages.jscript
 microsoft.public.dotnet.vsa
 microsoft.public.inetsdk.programming.scripting.jscript
 microsoft.public.scripting.jscript

compならcomp.lang.javascript
fjならfj.comp.lang.javascriptだが、ほぼ死んでいる。

85 :デフォルトの名無しさん:02/05/18 15:52
こういう話がしたいのですかね?>>1
コピペして.jsで保存>cscript hoge.js

function hoge1(){
this.showName = showName;
function showName(){return "hoge1";}
function showName2(){return "hoge1_";}
}

function hoge2(){}
function hoge2_showName(){return "hoge2";}
hoge2.prototype.showName = hoge2_showName;

function hoge3(){}
function hoge3_showName(){return "hoge3";}
hoge3.showName = hoge3_showName;

WScript.Echo(new hoge1().showName());
WScript.Echo(new hoge2().showName());
WScript.Echo(hoge3.showName())

//以下はエラーになる
WScript.Echo(new hoge1().showName2());
WScript.Echo(new hoge3().showName());



86 :Mr. J:02/05/18 17:58
>>10のコードをJavaでかくとこうなります。

class Horse{
    String name;
    int age;
    boolean isMale;
    
    Horse(String name, int age, boolean isMale){
        this.name = name;
        this.age = age;
        this.isMale = isMale;
    }
    
    public String toString(){
        return this.name + "は" + this.age + "歳";
    }
}

class Zebra extends Horse{
    int stripeCount;
    Zebra(String name, int age, boolean isMale, int stripeCount){
        super(name, age, isMale);
        this.stripeCount = stripeCount;
    }
    
    public static void main(String[] args){
        Horse h = new Horse("Bill", 4, true);
        Zebra z = new Zebra("Jane", 3, false, 382);
        System.out.println(h);
        System.out.println(z);
    }
}

87 :Mr. J:02/05/18 17:59
ここからWindows Script Hostのヘルプを落とせます。
このヘルプはJScriptとVBScriptのランゲージリファレンスを含みます。
http://www.microsoft.com/japan/msdn/scripting/default.asp

昨日ここらを紹介しなかったのはまずかったと反省しています。
紹介すればもっと有意義な議論になったかもしれないのに。

88 :デフォルトの名無しさん:02/05/18 17:59
だからスレの方向性をはっきりすれ。
Javaとか関係ないやん。

89 :Mr. J:02/05/18 18:02
>>83
>>10のコードでHorseのメンバ関数であるtoString()は自動的に継承されていると思うんですけど。
FLASHは私も知りません。

90 :デフォルトの名無しさん:02/05/18 18:04
(´ー`)。o○(1が率先してスレ違いの話をしてるのは何でだろう・・・)

91 :Mr. J:02/05/18 18:05
>>88
JScriptはコンストラクタと関数の区別がはっきりしないんです。
>>10のコードでメンバ関数はfunction HorseToString()だけで
function Horseおよびfunction ZebraはJavaで言うところのコ
ンストラクタに相当するといいたいわけです。

92 :デフォルトの名無しさん:02/05/18 18:13
>>91
それって誰か質問したんか?
「JScriptにコンストラクタはあるんですか?」とか。
なんだか>>1が講釈たれたくてageてるだけのスレに見えるんだよなぁ。


93 :デフォルトの名無しさん:02/05/18 18:17
>>92
いや、その通りでしょ。

94 :デフォルトの名無しさん:02/05/18 18:24
俺は正直、今までの内容ならWEB板、WSHスレのそれぞれで
やった方がいいと思うよ。
この板で新しく立てるなら「JScript.NET」に絞ったほうがいいと思う。

95 :デフォルトの名無しさん:02/05/18 18:42
あとは「VC++(MFC限定)相談室」みたく「WSH(JScript限定)相談室」とかね。
WEBやFLASHで使えるって利点をアピールするのは正論だとは思うのだけど
やっぱWEB板の方がユーザも多いと思うし盛り上がると思うんだよね。
需要が無いのにage続けてるとうざがられるだけだし、
少しでも需要がある場所に行った方がよいと思う。
JavaScript、JScript、同.NETを一緒にして純粋に言語だけを語るのは
難しいんじゃないかなぁ。
しかも2chて質問するときに自分の環境を書くことなんてまず無いから
「それってJavaScriptの話?JScript?.NET?WSH使う?WEB?」
みたいな質問返しの応酬の予感。

96 :デフォルトの名無しさん:02/05/18 19:16
個人的には w3m に JavaScript を激しく組み込むスレにしてほすぃ。


97 :Mr. J:02/05/18 19:46
申し訳ない。
なんか利点を強調したくて焦点が絞れなかったみたい。
別に講釈をたれたかったわけじゃなくて、
JScriptで面白いことをやれたらいいなと思っただけ。
Javaを持ち出したのは、JavaScriptのオブジェクト指向的な部分は
Javaからのパクリだからというのと自分の説明の仕方が悪くてまと
もな議論になっていないように見えたので、ここの人にはJavaを持
ち出して説明したほうがよかったと反省したから。
自分がたまにJavaのライブラリから考え方をパクッて使ったりするので、
CLRからも考えをパクると面白いかと思って。
とりあえず、私の不徳のいたすところで皆さんに迷惑をかけました。
私的にはには終了ということにしたいです。
なにか苦情とかがあればお答えしますけど。

98 :デフォルトの名無しさん:02/05/19 01:36
>>97
>JavaScriptのオブジェクト指向的な部分はJavaからのパクリだからというのと
ぜんぜん違うよ。上のほうでクラス方式とプロトタイプ方式
っていう分類を持ち出していた人いたように、Javascriptは
Javaに比べてもっと即興的なもの。Javaみたいなクラス方式?
は、オブジェクトの集団を分類するでしょ。つまりなにかの
オブジェクトは特定のクラスに属する。で、言語としても
それをサポートする構文規則が存在する。でもJavascriptには
それはないの。
たとえば、>>10
var h = new Horse("Bill", 4, true);
ってあるけど、結局これは、hというオブジェクトに対して
プロパティとメソッドを付け加えるためのfunctionにあとで
再利用できるためにHorseという名前が付いているだけ。
これをJavascriptでは、コンストラクタとよんでいるけど
Javaのそれとは意味が違う。だから、生成したあとの
h が、Horseクラスに属するとかそういう概念はないわけ。
共通のメソッドとプロパティを持っているオブジェクトの
集団は生成できるし、それをひっくるめることでJavascriptにおける
クラスの概念としても別にかまわんけど、構文規則として
それをサポートしているものはないの。だから、Horse functionと同じ
内容で違う名前のHorse1 functionってのが
あったとして、
new Horse("Bill", 4, true);
new Horse1("Bill", 4, true);
は見分けられない。Horse.call(this, name, age, isMale);
も単にHorseを使って新たなプロパティの追加を行っているだけ。
prototypeを使い始めるとわかるとおもうけど、あれも
クラスの継承とは違うんだよ。荒い言い方すると、
あるオブジェクトから、あるプロパティを取り出すときに
名前探索する範囲を他のオブジェクトが持っているプロパティ
まで広げられるってだけ。だからinstanceofみたいな
キーワードもあるけど、使い方はクラス方式とはぜんぜん違う。
#以上は、ECMA262 3ed.までの話だから、4ed.ではclassが...
#とかいう突っ込みはなしね。
みたいなことを理解しないと、Javascriptのオブジェクト指向
の話はできないよ。ってことでちょっと空回りしていた感も
あるんで、1はしばらく頭冷やすのがよいとおもわれ。1が自分で
いうように終了しろとまではいわんけどね。戻ってくるもよし、
そのまま立ち去るもよし。


99 :デフォルトの名無しさん:02/05/19 01:45
Web関連はWeb板で、
WSHはhttp://pc.2ch.net/test/read.cgi/tech/1010400289/
があるから、ココはJScript.NETスレにして再利用すれば?

100 :100:02/05/19 01:59
ひやく

101 :デフォルトの名無しさん:02/05/19 02:01
>>99
.NETだと4ed.ベースになるみたいだし、スレタイからJavascriptは外したいとこ
だなぁ。.NET以外に実装し始めた処理系ってないよね?
とりあえず、このまま方向性決めずに放っておいて、.NETの話が多いなら
スレ立て直す、沈んでいくならそれもよし、Webネタ、WSHネタ
ばっかりだったら板違いってことでこのスレは沈めるってのは?

102 :99:02/05/19 02:15
>>101
そうだね。確かにこのスレタイだと苦しいかな。
とりあえず、流れに任すことにしますか。

103 :デフォルトの名無しさん:02/05/19 02:25
壮絶な100レスだったな・・・

104 :デフォルトの名無しさん:02/05/19 09:56
>>101
まぁ、なるようになるさ。それが2ch。

105 :デフォルトの名無しさん:02/05/19 12:34
>>98
>var h = new Horse("Bill", 4, true);
>ってあるけど、結局これは、hというオブジェクトに対して
>プロパティとメソッドを付け加えるためのfunctionにあとで
>再利用できるためにHorseという名前が付いているだけ。
hというオブジェクトにHorseオブジェクトへのポインタを格納するんじゃないですか?
prototype方式の概念等は理解できます。

106 :Mr. J:02/05/20 00:49
>>98
貴重な意見を語っていただいてうれしいです。勉強になりました。

とりあえず立ち去ることにします。皆さん、お騒がせしました<(_ _)>。

107 :デフォルトの名無しさん:02/05/20 17:59
>>105
Horseオブジェクトって何よ

108 :デフォルトの名無しさん:02/05/20 20:56
>>107
自作のオブジェクト

109 :デフォルトの名無しさん:02/05/22 23:55
>>108
オブジェクトって言葉の使い方が怪しいが・・・

prototype方式にはC++などのようなクラスの概念はないの
> var h = new Horse("Bill", 4, true);
は h のさすオブジェクトの初期状態を決めるだけで
そのオブジェクトには好きなだけ新しいプロパティやメソッドを追加したり変更したりできる

110 :デフォルトの名無しさん:02/05/23 02:36
CLOS のお勉強でもするといいかもね。

111 :デフォルトの名無しさん:02/05/23 03:48
>>109
それはわかるです。
クラス方式でいうオブジェクトとかインスタンスとかじゃなくて、
JSのオブジェクトってことだったんです。

あと、CLOSもプロトタイプ方式なんですか?

112 : :02/05/29 00:50


113 :デフォルトの名無しさん:02/05/30 10:28
ところでさ、JavaScript でクラスを書くときに
こういう書き方をしている人ってどれくらいいる?

function Hoge( a,b,c )
{
 // 非公開
 var m_a = a;
 var m_b = b;
 var privateFunction = function(){ .... }
 
 //公開
 this.c = c;
 this.getA = function(){ return m_a; }
 this.getB = function(){ return m_b; }
}

話題とずれてるので sage

114 :デフォルトの名無しさん:02/05/30 11:53
プロトタイプ式オブジェクト指向の利点。
以下のように多重継承と、インターフェース実装を足して
2でわったような感じのコードが書ける

function A(a)
{
 var m_a = a;
 this.getA(){ return m_a; }
}

function B(b)
{
 var m_b = b;
 this.getB(){ return m_b; }
}

function Hoge( a, b )
{
 var m_key;
 var m_objA = new A(a);
 var m_objB = new B(b);
 for( m_key in m_objA ) this[m_key] = m_objA[m_key];
 for( m_key in m_objB ) this[m_key] = m_objB[m_key];
}

…無意味?

115 :デフォルトの名無しさん:02/06/04 09:19
age

116 :デフォルトの名無しさん:02/06/08 21:56
EcmaScriptのEdition3くらいの言語だと言語機能が少なくて、
簡単な事をやるにはいいけど、部品を拡張していく記述をするのに
手間が掛かるね。

あと、型無しの言語でいっぱいユーザー定義型を使ってると、
記述が不明瞭になってちょっと嫌だな。JScript.NETみたく、
EcmaScript Edition4っぽい拡張しても、記述が冗長な気がするし。

ま、いいか。(ぉぃ

117 :デフォルトの名無しさん:02/06/09 08:51
>10
(゚∀゚)うぉっ
捜し求めていた情報がこんなところに・・・

118 :◆A2MadQ16 :02/06/14 04:32
去年末、JavaScriptでScheme(LISPの方言)を実装するという卒論を目撃。

119 :デフォルトの名無しさん:02/06/16 01:24
>>113-114
ローカル変数がどう作用するかわかってそのコードを書いてる?

120 :デフォルトの名無しさん:02/06/16 01:32
JavaScriptによる ジェネリックプログラミング
http://www.mamezou.com/tec/Tips/jsgl/
C++のテンプレートを移植してるっぽい。しょぼいけど。

121 :113-1114:02/06/16 17:39
最初に >>114 の訂正。
×this.getA(){ return m_a; }
○this.getA = function(){ return m_a; }
Bも同じです…早く気づけよ>自分(鬱

>>119
たぶん114のことを言っていると思われるので。

えーと、Hoge は m_objA と m_objB の公開されてるメンバ(メソッドorプロパティ)と同じ
名前のメンバを作成し、そこに m_objAのメンバを代入すると思いましたが。
(故にメンバ名が被ると、上書きされる)
とはいえ、 Hoge の getA の中身が「function(){ return m_a; }」となっているところが
やや気にはなりますが、期待通りの動作をするので、
Hoge の getA は、実際は m_objA の getA を呼び出すという解釈をしているのですが。

見当外れのことを言っていたり、間違っていることを言っていたらご教授願います。
完璧に理解しているわけではないので…


122 :厨房もじらー:02/06/16 23:48
function Hoge( a,b,c )
{
 // 非公開
 var m_a = a;
 var m_b = b;
 var privateFunction = function(){ .... }
 
 //公開
 this.c = c;
 this.getA = function(){ return m_a; }
 this.getB = function(){ return m_b; }
}
このコンストラクタを抜けた時点でローカル変数m_a, m_b, privateFunction
がスコープ外に抜けて無効になるような気がするけど
もしかして漏れの勘違いかな。。。

123 :デフォルトの名無しさん:02/06/17 10:46
質問ですがconfirmの、「はい」「いいえ」で、デフォルトで「はい」が
選択されますが、それを「いいえ」にする方法ってあるのでしょうか?

124 :デフォルトの名無しさん:02/06/17 10:49
>>122
プロトタイプ型のオブジェクト指向知らない俺ですが俺もそう思います。

初心者の質問から新たな議論が起こることもしばしばと言うことで解説して下さいな。

125 :デフォルトの名無しさん:02/06/17 10:51
>>122
上のコード読んでみると違うっぽい。

多分function -> classに読み替えればスッキリするかと。
クラスの宣言とコンストラクタが同時に書けているんですな。


126 :123:02/06/17 10:52
「はい」「いいえ」じゃなくて「OK」「キャンセル」ですね。
デフォルトで「キャンセル」が選択されている状態にしたいのですが、
調べてもなかなか出てこないもので。

127 :デフォルトの名無しさん:02/06/17 10:55
>>114
質問、クラスAとクラスBに同名のメソッドなりフィールドがあった場合、前のメンバが隠匿されません?
単なる継承と理解。

128 :113-114:02/06/17 11:46
>>122

var value = new Hoge( 10, 20 );

とした場合、value(空のObject) の this ポインタを Hoge に渡し、
Hoge のコンストラクタで value を初期化(※1)をしているので、
Hoge のコンストラクタが終了しても、value には影響を及ぼさないと。

だから、value のローカル変数は、value 自体がスコープを抜けて
クリアされるまで保持されるはず、と考えてるんだけど。
期待通りに動いているので、訊かれるまで考えもしなかったよ(^^;

※1
JScript の特徴として、実行前にすべての変数がチェックされ、その後初期化されるので
value に Hoge のメンバすべてが作成されたあと、Hoge のコードを上からたどっていって、
初期化されている部分があれば、value のメンバを初期化する考えているのだが。



129 :113-114:02/06/17 11:48
>>114
ばっちり上書きされます。
しかも、A と B のローカル変数を Hoge は直接見ることが出来ないので、
継承といえるかどうかも微妙。
なんか、面白い使い方できないかなと思っただけなので。

130 :113-114:02/06/17 11:49

>>127 へのレスです。すいません(鬱

131 :デフォルトの名無しさん:02/06/17 11:54
>>129
なるほど。
でも、プロトタイプ型って言うのもなかなか柔軟でおもしろそうですね。
勉強になりました。


132 :デフォルトの名無しさん:02/06/17 12:04
WSHで.jsを実行すると毎回ノートンに警告されるんだけど
自分で作ったやつだけ素通りさせるにはどうしたらいいの?

133 :128 の※1の続き:02/06/17 12:11
なので、

function Test(str)
{
 var m_s1 = str;
 var m_s2 = "test";
 var m_strJoin = join();
 var join = function(){ return m_s1+m_s2; }
 this.toString = function(){ return m_strJoin; }
}

は、エラーになってしまう訳です。
正常に動作させるには m_strJoin と join の順番を逆にしなければいけないと。

134 :デフォルトの名無しさん:02/06/17 12:15
>>133
なるほど、手続き型プログラミングの原則1・順次を無視しちゃいけませんな。ってゴルァ!。

135 :デフォルトの名無しさん:02/06/17 20:37
prototypeキーワード使わないの?

136 :厨房もじらー:02/06/17 23:44
>>128
今試してみたらそうなった。
JavaScript(JScript)って奥が深いのね。。。
確かにnew Hoge(1,2)などと呼び出されるときのfunction Hoge()は
コンストラクタだから、関数のスコープで考えるのが間違いだったかも。
勉強になりました。ななしさんで書き込めばよかったと思ってます(鬱

137 :119:02/06/18 01:56
>>121
その通りですよ。
問題は113の非公開と書いてあるところ。この変数はいわゆるクラススコープなので
この書き方は使い物にならない。やはりプロパティとして保持させるしかない。

>>122
ローカル変数も実は、あるオブジェクトのプロパティだったはず。常に実態はある。
もちろん直接はアクセスできないけど。

>>128
意味わからないです。どこからこういう話を聞いたのでしょうか。
var value = new Hoge( 10, 20 );
とした場合、Hoge のコンストラクタが実行され、オブジェクトが生成される。
そのオブジェクトへの"参照"が返され、value が初期化される。
んじゃなかった?

>>133
クラス型の言語と本質的に違うってまだわかってない?
function 文は、クラスの宣言じゃないんだから...
それと、>>133のコードは何をしようとしているのかわからないです。

var join = function(){...};

function join(){ return m_s1+m_s2; } ;
にしてみるとか...

「実行前にすべての変数がチェックされ」るのではなくて、実行前にすべての関数が
解釈されるのでこれ↑はできる。そういうことじゃないかな。

>>135
>>114のコードは prototype キーワードを使ってかけますよ。

138 :137:02/06/18 01:58
実体っていう字間違えた。
あと、たくさん書き込んですみません。

139 :137:02/06/18 09:07
また訂正
prototype キーワード→ prototype プロパティ

140 :113-114:02/06/18 11:00

>>137

>クラススコープなので(中略)使い物にならない

JavaScript のクラスは「関数内関数」が進化(?)したものだと思っているので、
一層上の関数の変数が見えるのは当然だろうと考えています。
しかも、クラススコープなら余計問題なく使えると思いますが…

…すいません、ちょっと頭が混乱してきたので、
出来ればなぜ使い物にならないのか詳しく説明してもらえるとありがたいです。


>意味わからないです。どこからこういう話を聞いたのでしょうか。

意味がわからないというのは、多分私の文章力の無さです(^^;
で、私がそう思った根拠ですが、MSDN の JScript のリファレンスに
以下のようなことが書いてあったからです。(以下 MSDN Lib の new 演算子の説明より抜粋)

・メンバを持たないオブジェクトを作成します。
・オブジェクトのコンストラクタを呼び出し、
 新しく作成したオブジェクトへのポインタを this という名前でコンストラクタに渡します。
・コンストラクタは、受け取った引数に従って、オブジェクトを初期化します。

これを、自分なりに無い知恵絞って解釈した結果です。結構悩んだんですけど(^^;
何をどれに当てはめたらいいかで悩んだものですから。

141 :140:02/06/18 11:33
続き

>クラス型の言語と本質的に違うってまだわかってない?
分かってます。
function は、関数オブジェクトを作成するためのステートメントですよね。
これを使用すると全く新しいオブジェクトが出来るので、これを拡張して
クラスっぽくやろうというのが、JavaScript のオブジェクト指向だと解釈しています。
それでも私はクラス型と同じように記述したいわけです。
そのほうが見やすいし、分かりやすいと思いませんか?

あと、133 のコードは、こうするとエラーだということを示すためだけの意味のないコードです。
おっしゃるとおり、var join = function を function join にすれば、何の問題もありません。
っていうか、すべてのコードに意味なんてありませんけど(^^;

142 :140:02/06/18 12:00
ミス。
>>114 の継承の部分は、
this[key] = m_a.prototype[key]; (m_bも同じ)
でないとm_a[key]が toString や valueOf をもつ オブジェクトだった場合
期待通りの動きをしないかも。

あぁ、もう間違えだらけ。
混乱させてしまって申し訳ないです。

143 :140:02/06/18 14:16
>>129
継承ではない。 Delegate(委譲) だ。

144 :140:02/06/18 17:53
言い忘れていましたけど、
私の方法だと、スコープ外からのプロトタイプ継承が使えません。
あたりまえといえばあたりまえですが。
個人で完結したライブラリを作るときはあまり問題になりませんけど。

はっ!
ひょっとして、>>137 さんは、この問題を指摘していたのか!? (←気づくの遅すぎ。)


だらだらと書き込み重ねてすいません。そろそろやめます。

145 :デフォルトの名無しさん:02/06/19 18:28
>>140
こんな感じですか?
function Man (n, a) {
//privateっぽい
var age = a;

//publicっぽい
this.name = n;
Man.prototype.setName = function (val) { this.name = val; };
Man.prototype.getName = function () { return this.name; };
Man.prototype.setAge = function (val) { age = val; };
Man.prototype.getAge = function () { return age; };
}

var mona = new Man("茂名","18");
var giko = new Man("擬古","19");
alert("mona の名前: " + mona.getName() );
alert("mona の歳: "+ mona.getAge() ); //上書きされてしまった

//(参考)すべてのメンバーを表示
var s="";
for (var i in mona)s+=i + " : " + mona[i] + "\n";
alert(s);


>>142
prototype と書かなくても大丈夫じゃないですか?

>>144
スコープ外からのプロトタイプ継承って?
継承するもののスコープは宣言された位置ですよ。

146 :140:02/06/20 13:09
>>145
>prototype と書かなくても大丈夫じゃないですか?
そ、そのとおりです。っていうか書くとエラーが出ますね。(冷汗)
これからは、書き込むときはちゃんとコード書いて確かめてからにします。
すいません。

>スコープ外からのプロトタイプ継承って?
これは、私の書き方がまずかったです。
えーと、
 function A(a)
 {
  this.clac1 = function(b){ return a+b; }
 }
は、OKですけど、
 A.prototype.calc2 = function(b){ return a*b; }
は a がどこにあるか分からないので、エラーになると。そういうことです。

147 :デフォルトの名無しさん:02/06/20 23:56
>>146
だから、その関数の実行スコープは、実行時ではなくて、定義時だということです。

148 :140:02/06/21 16:25
>>147
そのとおりでした(^^;

149 :デフォルトの名無しさん:02/06/22 00:13
マウスオーバーで別フレームのレイヤーに文字の表示をしようとしているのだけど、
どうやるのかしってますか? 同じフレーム内ならぜんぜんOKなんだけど。

150 :デフォルトの名無しさん:02/06/22 00:23
>>149 そのあたりのブラウザ上でのクライアントサイドな話は
Web制作板に行くべきだと思う。
+ JavaScript の質問用スレッド vol.10 +
http://pc.2ch.net/test/read.cgi/hp/1022077876/l50


151 :デフォルトの名無しさん:02/06/22 00:27
>>150
どうもありがとうです。

152 :デフォルトの名無しさん:02/06/24 15:09
すいません、JavaScript の引数渡しに詳しい方にお聞きします。

function addMessageItem(arg){
 arg.push( "今日も一日頑張ってください" );
}
function changeMessageArray(arg){
 arg = new Array( "こんにちは", "ご機嫌いかがですか" );
}

という二つの関数があったとき、

objHello.msgArray = new Array( "おはようございます" );
var alias = objHello.msgArray;
addMessageItem(alias);

を実行すると、alias と objHello.msgArray の値は等しくなるのですが、

changeMessageArray(alias);

を実行しても、値に変化がありません。
Array は参照渡しなのに、どうしてこうなるのか全く分かりません。
なぜこうなるのかを教えてもらえないでしょうか?

153 :デフォルトの名無しさん:02/06/25 00:04
>>152
チミは150を読んだのか?脊髄反射書込みするなよ。

154 :デフォルトの名無しさん:02/06/25 00:22
じゃあageんなボケ。

155 :デフォルトの名無しさん:02/06/25 00:29
152は150に該当するような話じゃないんじゃ

156 :デフォルトの名無しさん:02/06/25 00:52
>>152
参照渡しじゃないよ。値渡し。
alias が持っている Array への参照が arg にコピーされるだけ。

157 :デフォルトの名無しさん:02/06/25 08:47
>>152
ちゃんと参照渡しになっていますよ。
(arg == alias) // true
しかし、あなたのコードでは、参照という値を上書きしているだけです。
そのため、外部に何も影響を与えません。
参照で元の値を変更するならば、
arg.push(...) や arg.length = 0 などのようにしなければいけません。

158 :デフォルトの名無しさん:02/06/25 09:10
>>155
結果的に参照が渡されるんだけどね。

159 :デフォルトの名無しさん:02/06/25 13:35
>>157
ありがとうございました。

changeMessageArray(alias);
 or
changeMessageArray(objHello.msgArray);

と書いても、JavaScript だと objHello.msgArray は変わらないんですね。
Cとかやってると、このへんの仕様に悩まされます。
仕方が無いから、 changeMessageArray の最後に return arg; をつけて、

objHello.msgArray = changeMessageArray(objHello.msgArray);
alias = objHello.msgArray;

みたいな書き方をすることしました。

160 :デフォルトの名無しさん:02/06/26 01:50
arg.length = 0;
arg[0] = "こんにちは";arg[1] = "ご機嫌いかがですか";
とかどうよ?

161 :デフォルトの名無しさん:02/06/26 12:57
>>160
あ、その方法でもいけますね。
そっちのほうが、スマートにまとまりそうなので、そちらを使用します。
ありがとうございました。

162 :デフォルトの名無しさん:02/06/28 00:26
ちょっと古いですが

>>128

> var value = new Hoge( 10, 20 );
> value のローカル変数は、value 自体がスコープを抜けて
> クリアされるまで保持されるはず、と考えてるんだけど。

valueのローカル変数というのはHoge関数のローカル変数だと思いますが。
そのローカル変数はvalueのプロパティなのではなく
むしろvalueのメソッド(となっているインライン関数)に属しているのだと思います。
つまり、Hoge()内でメソッドがインライン関数として定義されているため、
Hoge実行時の状況(ローカル変数や引数)がHoge関数を抜けてからも
メソッドから見える状態になってるんだと思います。

>>136
厨房もじらーさんは関数スコープで考えていいと思います。
関数内関数の事を知れば解決すると思います。
「kia's website」 (J(ava)Scriptメモ -> JavaScriptでクロージャ)
ttp://www.geocities.co.jp/SiliconValley-PaloAlto/5042/

163 :デフォルトの名無しさん:02/06/28 00:37
>>159
>Cとかやってると、このへんの仕様に悩まされます。

void f(int* a)
{
a = new int[1];
a[0] = 9;
}

void main()
{
int int_array[] = {1, 2, 3, 4, 5};
f(int_array);
// 多分int_arrayはそのまま
}

Cでも同じじゃないでしょうか。

164 :デフォルトの名無しさん:02/06/28 00:40
new は無いんだった。

165 :EL:02/07/09 17:11
age ついでにちょっと思いついたこと。
関数の完全なクローンを作成します。
継承にも使えます。

var inheritance = function cloning_function( newfuncname, basefuncname )
{
 var regexp = new RegExp( basefuncname );
 var funcvalue = new String();
 var exe = new String();

 eval( exe.concat("funcvalue = ",basefuncname,".toString();") );
 funcvalue = funcvalue.replace( regexp, "" );
 eval( exe.concat(newfuncname," = ",funcvalue) );
 
 exe = exe.concat( "for( var key in ", basefuncname, ".prototype )\n{\n" );
 exe = exe.concat( "\t", newfuncname,".prototype[key] = " );
 exe = exe.concat( basefuncname, ".prototype[key];\n", "}" );
 eval( exe );

 return newfuncname;
}

一応、JScript5.5 で動作確認しました。

166 :EL:02/07/09 17:19
>>165
return newfuncname; は余計だった。

167 :デフォルトの名無しさん:02/07/09 22:33
ふと思ったが、Java質問スレからこのスレにはリンク張られてないんだな。

168 :デフォルトの名無しさん:02/07/09 22:34
>ふと思ったが、Java質問スレからこのスレにはリンク張られてないんだな。

            笑 え な い 発 言 で す

169 :167:02/07/09 22:37
え、Javascriptの質問はWeb制作板へってのの話なんだけど。

170 :167:02/07/09 22:38
あ、169の文がJavaスレの1に書いてあるのよ。で、みごとに
このスレむしされているなぁと。

171 :デフォルトの名無しさん:02/07/09 22:41
だから?

172 :デフォルトの名無しさん:02/07/10 01:17
http://www.suntory.co.jp/softdrink/dakara/

173 :デフォルトの名無しさん:02/07/10 02:52
JavaScriptスレなんてあったんだ。って、JavaScriptスレだと
おもっていいよね。JScriptってよくしらんし。

なるべく JavaScriptには近寄らないようにしようと生きてきたんだけど、
最近仕事で使うので仕方なく ECMA262と O'Reillyのやつを読んでみた。
読んでみるとなかなか面白い言語であるな。
closureがあったり scope chainがあったり prototypeだったり。
そのくせ constructorなんてあって Java (C++?) への未練が断ち切れて
なかったり。好事家としての言語屋の知識欲をそそる仕様みたいだ。
でもやっぱりこんなのでコード書きたくないけどなあ。


174 :デフォルトの名無しさん:02/07/10 08:39
>>173
>Java (C++?) への未練が
まぁ、JavaScriptの歴史から調べてみては?

175 :デフォルトの名無しさん:02/07/12 15:42
『JavaScript 2 Black Book』
著者: Scott Duffy
出版予定: 2002年 12月
ttp://www.amazon.co.jp/exec/obidos/ASIN/1588803074/

JavaScript 2.0 と EMCAScript 4 についても書かれてるみたいですが、
12月までにEMCAScript 4が出るって事なのかな?

55 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.02 2018/11/22 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)