のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,645,785人
昨日:no data人
今日:
最近の注目
人気の最安値情報

私的良スレ書庫

不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

元スレ+ JavaScript の質問用スレッド vol.121 +

JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
202 : Name_Not - 2014/11/13(木) 23:29:08.57 ID:???.net (+59,+29,-10)
>>191
> そもそもifでfunctionって書きたいことってないだろう?
お前は何を言ってんだ?滅茶苦茶あるだろ
203 : Name_Not - 2014/11/13(木) 23:31:14.71 ID:???.net (+7,-30,-26)
いや、無いな。

例えあったとしても、こう書けばいいだけだもの。

function a() {}
function b() {}

var f;
if (・・・) {
 f = a;
} else {
 f = b
}

まあ、この場合は普通こう書くが
var f = (・・・) ? a : b;
204 : Name_Not - 2014/11/13(木) 23:32:01.71 ID:???.net (+59,+27,-2)
>>199
なるほど!動きました!
ありがとうございました!
205 : Name_Not - 2014/11/13(木) 23:47:34.30 ID:???.net (+8,-30,-142)
>>203
> いや、無いな。
お前アホだな…
if (hoge) {
var func = function(a) {
以下のforでしか使わない共通の処理
}
for (var i = 0; i < fuga; ++i) {
if (a[i]) {
func(1);
} else {
func(0);
}
}
}
みたいに、ちょっとした共通処理を外にくくり出す事はしょちゅうある事だろ
これはJavaScriptのいいところだ
206 : Name_Not - 2014/11/13(木) 23:54:55.84 ID:???.net (+57,+29,-9)
ある/ないが書く人によってまちまちなことを
一般論としようとすること自体が不毛なんじゃないかと
207 : Name_Not - 2014/11/14(金) 02:12:16.44 ID:???.net (+38,-30,-145)
>>205
変数の巻き上げって知ってる?
そのコードってこうなってるんだけど。

var func;
if (hoge) {
func = function(a) {
以下のforでしか使わない共通の処理
}
for (var i = 0; i < fuga; ++i) {
if (a[i]) {
func(1);
} else {
func(0);
}
}
}
208 : Name_Not - 2014/11/14(金) 02:15:36.20 ID:???.net (+3,-30,-124)
if (hoge) {
hoge();
}

function hoge() {
function func(a) {
以下のforでしか使わない共通の処理
}
for (var i = 0; i < fuga; ++i) {
if (a[i]) {
func(1);
} else {
func(0);
}
}
}
209 : Name_Not - 2014/11/14(金) 02:50:30.25 ID:???.net (+56,+28,-1)
javascriptは自由度が高すぎるよね
210 : Name_Not - 2014/11/14(金) 05:56:02.83 ID:???.net (-8,+29,-41)
確実に一回しか使われないもの、イベントからしか使われないのは無名にしたほうがいいね
関数名があるだけでグローバル汚染だって嫌がる人もいるし
211 : Name_Not - 2014/11/14(金) 06:39:23.80 ID:LPq2meoL.net (+24,+29,-4)
なめらかにスクロールさせるにはどうしたらいいですか?
212 : Name_Not - 2014/11/14(金) 08:01:35.04 ID:???.net (+52,+29,-1)
コサイン補間で自前スクロール
213 : Name_Not - 2014/11/14(金) 12:16:20.63 ID:???.net (+47,+29,+0)
なぜコサイン
214 : Name_Not - 2014/11/14(金) 12:32:06.30 ID:???.net (+70,+29,-3)
>>210
よっぽど関数が長くない限り、俺もそうしてる。
215 : Name_Not - 2014/11/14(金) 12:40:07.82 ID:???.net (+62,+29,-5)
>>207
変数の巻き上げの話なんてしてねーし無関係
216 : Name_Not - 2014/11/14(金) 15:05:48.13 ID:oSl+e0U/.net (-13,+29,-81)
>>205
「条件付の関数宣言」から「条件付の関数呼び出し」に変わっているが、論点がずれてきているのではないだろうか。
>>191は「if文で関数宣言したい状況はない」といったが、>>203で前言を覆しているわけで両者がいがみ合う理由はないと思うのだが…
219 : 184 - 2014/11/14(金) 15:55:53.36 ID:oSl+e0U/.net (-15,+29,-201)
>>210
趣旨は理解できるが、誤解を招くので補足しておきたい

「関数式は無名関数を指す」「名前のある関数=関数宣言」と認識している人がいるが、実際には「名前付き関数式」も存在するのでその認識は誤りだ
名前付き関数式は関数内で自身を名前で参照することができるので再帰処理でよく使われる
即時関数でも当然、名前を付けることが出来る

イベント処理で無名関数を使用する人は良く見かけるが、理想的には unload のタイミングで removeEventListener を呼び出した方が良い
その為には変数に listener 関数の参照を保持しておく必要がある
最終的に使わなくなったイベント、データは全て削除しておく方が作法としては望ましい
特にクロージャが発生する場合は削除しておいた方が思わぬバグに悩まされずに済む
「立つ鳥跡を濁さず」だ

グローバル汚染は無名関数で括るだけで回避できるので、関数宣言を使用しても問題にはならないように思う
220 : Name_Not - 2014/11/14(金) 16:11:06.50 ID:???.net (+52,+29,-1)
なんの話してたんだっけ
221 : Name_Not - 2014/11/14(金) 16:47:08.93 ID:???.net (+8,-29,-6)
>>172
function a(){}はvar a = function(){}なんだけど知らないのかな
222 : Name_Not - 2014/11/14(金) 16:49:30.87 ID:???.net (+2,-30,-56)
>>210
イベントが何度も呼び出されるような場合は無名にすると呼び出された回数分オブジェクトが作られる
グローバル汚染は(function(){})()の中で書けばいいだろ
223 : Name_Not - 2014/11/15(土) 00:31:21.95 ID:???.net (+57,+29,-55)
直接記事載せてるサイトに聞くなり報告するなりすりゃあええのに
こういうゆとりは2ちゃんでも「俺は出来る人間」だと思われたくて承認欲求を満たしたいんだろうな
224 : Name_Not - 2014/11/15(土) 03:27:56.09 ID:???.net (+44,+21,-19)
(数行の文の書き方で承認欲求て)
226 : Name_Not - 2014/11/15(土) 03:51:13.10 ID:???.net (+0,-30,-16)
>>221

a();
var a=function(){}
エラー

a();
function a(){}
エラーじゃない


上のほうは内部的なメリットがややあるのでは
227 : Name_Not - 2014/11/15(土) 04:04:40.42 ID:???.net (+4,-30,-44)
>>222
これマジ?
document.addEventListener('mousemove', function(){ながーい処理});
こうしたらメモリやばい?
228 : Name_Not - 2014/11/15(土) 06:21:40.01 ID:???.net (+41,+18,+0)
スタックオーバーフロー
229 : Name_Not - 2014/11/15(土) 06:56:37.81 ID:???.net (+3,-30,-42)
>>227
それは大丈夫
問題なのは、
document.addEventListener('mousemove', function(){
function nested(){
ながーい処理
}
});
230 : Name_Not - 2014/11/15(土) 09:15:24.46 ID:y3XW73b5.net (+19,+29,-4)
おい!ぜんぜんメモリ増えないぞ!!
231 : Name_Not - 2014/11/15(土) 09:19:31.42 ID:???.net (+57,+29,-8)
そりゃGCされるからだろw
参照をどこかに残してしまうとメモリが消費されていくはず
232 : Name_Not - 2014/11/15(土) 09:36:26.37 ID:???.net (-1,-29,-20)
じゃあ毎回処理が戻るmousemoveは安全だな
233 : Name_Not - 2014/11/15(土) 10:18:00.81 ID:???.net (+36,-30,-27)
functiona outputlog() {~}はvar outputlog;をしてるのと同じなんだよ
その指摘は全く意味不明で言語仕様を理解してない証拠
少なくとも記事をあそこで書ける人のほうが上だな
235 : Name_Not - 2014/11/15(土) 10:38:44.71 ID:???.net (-1,-29,-6)
'touchs tart' → 'touchs start' 
かな?
236 : Name_Not - 2014/11/15(土) 10:44:17.15 ID:???.net (+57,+29,-3)
あーごめん変なとこで切れてたからsが見えてなかったわ
237 : Name_Not - 2014/11/15(土) 10:51:46.89 ID:???.net (+62,+29,-34)
>>233
関数のインスタンス化のタイミングを考えなければ、大体そうだね
evalの中だと他にも違いはあるけどね
238 : Name_Not - 2014/11/15(土) 11:33:29.51 ID:???.net (-6,-30,-170)
>>234
enchant.js は知らんけど、
http://enchantjs.com/ja/resource-ja/overview/
を見る限りではフラグなんて立てなくても一定時間ごとにフレーム処理してくれるから勝手にフレーム管理してくれるんでないかね

> function isTouch(scene){
> var isTouch = false;
isTouch の名前が衝突してるから isTouch 関数が期待通りに動作しない

> scene.addEventListener("enterfr ame",function(){
イベント名に無意味な半角スペース(他のイベントも同じ)

何にしてもライブラリ質問だし、「ライブラリスレで質問しろ」がこのスレ的な回答になるんだけどね
質問前に>>1の(9)と>>2,5を参照すべき
240 : Name_Not - 2014/11/15(土) 17:07:09.37 ID:???.net (-11,-30,-21)
242 : Name_Not - 2014/11/15(土) 18:33:02.32 ID:???.net (+8,-29,-8)
JavaScriptでは@と#に特別な意味ってありますか?
243 : Name_Not - 2014/11/15(土) 23:57:14.43 ID:wpMdtkCd.net (+24,+29,-35)
javascriptがっつり使ったアニメーションばりばりのサイト作っている会社はどこですか?
244 : Name_Not - 2014/11/16(日) 01:00:36.29 ID:???.net (+57,+29,-13)
大手ゲーム会社のゲーム紹介サイトでも見れば?
今時Flashで作ってるサイトなんか無いだろ
245 : Name_Not - 2014/11/16(日) 03:40:24.80 ID:5lNqMDsI.net (-1,+3,-5)
googleのトップでCSSのアニメーションよくやってるよ
246 : Name_Not - 2014/11/16(日) 04:21:07.98 ID:???.net (+52,+29,+0)
あれフラッシュじゃなかったっけ
247 : Name_Not - 2014/11/16(日) 08:32:25.14 ID:GGtXJc3p.net (+24,+29,-16)
javascriptがっつり使ったアニメーションばりばりのサイト

http://jsdo.it/
248 : Name_Not - 2014/11/16(日) 09:42:45.63 ID:ErdkxDcO.net (+24,+29,-9)
そこですごい再生数のなんなの?
どこにもリンクされてないのに
249 : Name_Not - 2014/11/16(日) 10:35:44.29 ID:???.net (+44,+16,-5)
自作自演の宣伝の流れわかりやすいねw
250 : Name_Not - 2014/11/16(日) 10:40:38.09 ID:???.net (+30,-30,-17)
a={};
b=a;
a=0;
としてもbはオブジェクトですが
ということは
b=0
とやってもどこかにオブジェクトが残っているのでしょうか
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について