サーバーサイドJavaScript総合
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/05/15(木) 16:22:12ID:omRBHTnIクライアントJavaScript/JScriptについてはWeb制作板へどうぞ。
とりあえず俺は今頃Jaxerで遊んでみてます。
AJAJAって無くなったのかな? 公式らしきURLがwikipedia転送になってますね
その他にもいろいろ実装あるので、>>2以降で軽くリンクとか書いて行きます
0222nobodyさん
2012/10/02(火) 09:33:06.14ID:???上のthisと下のthisは同じものにならないんじゃないの?
0223nobodyさん
2012/10/02(火) 12:16:09.29ID:???入れ子の無名関数のthisはどこにも参照されていない筈
0224nobodyさん
2012/10/02(火) 16:26:17.64ID:???>>223
そうなの?
C#ではこういう書き方ができたから、通ると思ったんだが…
JavaScriptだとダメなの?
0225nobodyさん
2012/10/02(火) 17:05:54.11ID:???>>221を書いた人なの?そもそもjsのプログラムとして完成させてくれないと何をしたいのかわからん
これこのままじゃ、fooって関数を宣言してるだけだよね?GetRoomListは宣言してるけど使ってないし何なの?
0226221
2012/10/02(火) 17:08:46.50ID:???すまん
肝心な部分が抜けてた
function foo(){
var collection = {}
this.Add = function(line){
//lineの内容に応じた処理を行う
//collectionに追加
}
function GetRoomList(callback){
var stream = fs.createReadStream("foo.txt");
new lazy(stream)
.lines
.forEach(function(line){
this.Add(line);
})
});
}
GetRoomList();
}
0227nobodyさん
2012/10/02(火) 17:35:07.60ID:???括弧の対応とれてないだろうがw
無理やり文法エラーなおして、this.Add()の関数になにか適当な処理いれて、
最後にfoo()を呼び出すようにすれば俺の環境だとちゃんと動くぞ
上のthisと下のthisに違うものが入るかと思ったが、両方とも同じグローバルオブジェクトがはいるんだな
forEachの仕様をよく理解してなかったわ
0228221
2012/10/02(火) 19:41:47.18ID:???var fs = require("fs");
function foo(){
var collection = {}
this.Add = function(line){
//lineの内容に応じた処理を行う
//collectionに追加
console.log(line);
}
function GetRoomList(callback){
var stream = fs.createReadStream("roomlist.txt");
new lazy(stream)
.lines
.forEach(function(line){
this.Add(line);
});
}
GetRoomList();
}
$test = new foo();
文法エラーを修正したが、こんなエラーが出る
0229nobodyさん
2012/10/02(火) 19:48:55.73ID:???at C:\Users\xxx\Documents\WebChat\test.js:17:9
at EventEmitter.self.forEach (C:\Users\xxx\Documents\WebChat\node_modules
\lazy\lazy.js:62:13)
at EventEmitter.<anonymous> (C:\Users\xxx\Documents\WebChat\node_modules\
lazy\lazy.js:46:19)
at EventEmitter.emit (events.js:93:17)
at self.bucket.yield (C:\Users\xxx\Documents\WebChat\node_modules\lazy\la
zy.js:152:18)
at Function.<anonymous> (C:\Users\xxx\Documents\WebChat\node_modules\lazy
\lazy.js:186:21)
at self.bucket (C:\Users\rirufa\Documents\WebChat\node_modules\lazy\lazy.js:
158:21)
at EventEmitter.emit (events.js:93:17)
at ReadStream._emitData (fs.js:1365:10)
at afterRead (fs.js:1347:10)
0230nobodyさん
2012/10/02(火) 19:55:27.08ID:???それだと上のthisと下のthisは違ってしまうからうごかんわw
this.Add = function(line){
の上に
var self = this;
とかいれて、
下のthisをselfに置き換えればとりあえず動くよw
0231221
2012/10/02(火) 19:59:50.02ID:???それでやったら動いた
0232nobodyさん
2012/10/02(火) 20:36:44.53ID:???javascriptの場合、コールバック関数内でthisが何になるかは、コールバックを渡した関数の仕様に依存することになるから
仕様がはっきりしない場合はthisは使えないと思ったほうがいいね
0233nobodyさん
2012/10/02(火) 22:58:43.49ID:uRHsxp7z0234nobodyさん
2012/10/02(火) 23:24:35.04ID:???Pythonみたく代入した場所でスコープ決まったり、Rubyみたく変数名の表記で決まったり、それぞれルールがあるだけじゃね?
0235nobodyさん
2012/10/02(火) 23:39:57.49ID:???0236nobodyさん
2012/10/06(土) 23:43:38.61ID:???C#やC++とかだとthisはオブジェクトのインスタンス自身を表すことになってるのに、なぜかJavaScriptだけ別物
0237nobodyさん
2012/10/07(日) 07:01:11.25ID:???0238nobodyさん
2012/10/07(日) 17:10:29.74ID:???オブジェクト生成後にあとからメソッドが追加できるという自由すぎる言語特性ゆえ、
thisのスコープをJavaなんかと同様にしてしまうと、弊害があると考えられたから。
これ結構常識だと思うのだけど...
0239nobodyさん
2012/10/13(土) 13:32:24.29ID:???サンプルのleaderboard見てクラクラきた。
慣れると楽なのかな?
0240nobodyさん
2012/10/20(土) 10:25:51.21ID:nMqOZ8tI// コールバック関数
略
$("#twi").append('<li><div class="icon"><a href="https://twitter.com/'+ val.from_user +'"><img width="60px" height="60px" alt="'+ val.from_user +'" src=" ' +
val.profile_image_url +'" /></a></div>'+ '<div class="text"><dl><dt><strong>ユーザー名</strong>: ' + val.from_user +
'<br/><strong>投稿時間(GMT)</strong>: ' + val.created_at +
'</dt><dd><strong>投稿文</strong>:<pre> '+ val.text +'</pre></dd></dl></div></li>');
//GMTをどうにか日本時間にしたい
});
略
//アクセス先のURL
jQuery.getJSON('http://search.twitter.com/search.json?callback=?',
//サーバーに送るデータ
{q:'さとし+OR+ピカチュウ',//複雑なnot検索がしたい
//AND検索は、クエリを「+」(スペース)で繋ぐ
//OR検索は、クエリを「+OR+」で繋ぐ
//NOT検索は、除外したいクエリの前に「-」をつける
//フレーズ検索は、フレーズを「"」で囲む
略
ここにおいて、まずGMTを日本時間(JPN)に直すにはどうしたらいいのか。
そして複雑なNOT検索(例えばAという単語について、
BとCという単語が付属しているものを除外する。また単独のフレーズとして
DとFという単語を除外する。)をするにはどうしたらいいのか。
以上の2点について教えてください!
0241nobodyさん
2012/10/20(土) 10:29:48.62ID:nMqOZ8tISat, 20 Oct 2012 01:27:30 +0000
という表記を
2012年10月20日(土) 10:27
としたいです。
0242nobodyさん
2012/10/20(土) 11:05:33.73ID:nMqOZ8tI0243nobodyさん
2012/12/25(火) 02:53:11.59ID:???ちょい前にNodeの1.0ブランチできたってね
0244nobodyさん
2012/12/25(火) 13:51:52.77ID:???■ このスレッドは過去ログ倉庫に格納されています