JavaScript JScriptってどうよ
■ このスレッドは過去ログ倉庫に格納されています
0001Mr. J
NGNGhttp://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
0153デフォルトの名無しさん
NGNGチミは150を読んだのか?脊髄反射書込みするなよ。
0154デフォルトの名無しさん
NGNG0155デフォルトの名無しさん
NGNG0156デフォルトの名無しさん
NGNG参照渡しじゃないよ。値渡し。
alias が持っている Array への参照が arg にコピーされるだけ。
0157デフォルトの名無しさん
NGNGちゃんと参照渡しになっていますよ。
(arg == alias) // true
しかし、あなたのコードでは、参照という値を上書きしているだけです。
そのため、外部に何も影響を与えません。
参照で元の値を変更するならば、
arg.push(...) や arg.length = 0 などのようにしなければいけません。
0158デフォルトの名無しさん
NGNG結果的に参照が渡されるんだけどね。
0159デフォルトの名無しさん
NGNGありがとうございました。
changeMessageArray(alias);
or
changeMessageArray(objHello.msgArray);
と書いても、JavaScript だと objHello.msgArray は変わらないんですね。
Cとかやってると、このへんの仕様に悩まされます。
仕方が無いから、 changeMessageArray の最後に return arg; をつけて、
objHello.msgArray = changeMessageArray(objHello.msgArray);
alias = objHello.msgArray;
みたいな書き方をすることしました。
0160デフォルトの名無しさん
NGNGarg[0] = "こんにちは";arg[1] = "ご機嫌いかがですか";
とかどうよ?
0161デフォルトの名無しさん
NGNGあ、その方法でもいけますね。
そっちのほうが、スマートにまとまりそうなので、そちらを使用します。
ありがとうございました。
0162デフォルトの名無しさん
NGNG>>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/
0163デフォルトの名無しさん
NGNG>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でも同じじゃないでしょうか。
0164デフォルトの名無しさん
NGNG0165EL
NGNG関数の完全なクローンを作成します。
継承にも使えます。
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 で動作確認しました。
0167デフォルトの名無しさん
NGNG0168デフォルトの名無しさん
NGNG笑 え な い 発 言 で す
0169167
NGNG0170167
NGNGこのスレむしされているなぁと。
0171デフォルトの名無しさん
NGNG0172デフォルトの名無しさん
NGNG0173デフォルトの名無しさん
NGNGおもっていいよね。JScriptってよくしらんし。
なるべく JavaScriptには近寄らないようにしようと生きてきたんだけど、
最近仕事で使うので仕方なく ECMA262と O'Reillyのやつを読んでみた。
読んでみるとなかなか面白い言語であるな。
closureがあったり scope chainがあったり prototypeだったり。
そのくせ constructorなんてあって Java (C++?) への未練が断ち切れて
なかったり。好事家としての言語屋の知識欲をそそる仕様みたいだ。
でもやっぱりこんなのでコード書きたくないけどなあ。
0174デフォルトの名無しさん
NGNG>Java (C++?) への未練が
まぁ、JavaScriptの歴史から調べてみては?
0175デフォルトの名無しさん
NGNG著者: Scott Duffy
出版予定: 2002年 12月
ttp://www.amazon.co.jp/exec/obidos/ASIN/1588803074/
JavaScript 2.0 と EMCAScript 4 についても書かれてるみたいですが、
12月までにEMCAScript 4が出るって事なのかな?
■ このスレッドは過去ログ倉庫に格納されています