のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,645,447人
昨日: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
151 : Name_Not - 2014/11/12(水) 00:30:32.89 ID:???.net (+60,+29,-5)
>>149
そっちでやります。
仕事で早いんで、もう寝ます。朝に書き込みます
152 : Name_Not - 2014/11/12(水) 00:36:57.56 ID:???.net (+57,+29,-2)
荒らしいるんですか、じゃあ、直接、出版社に言います
153 : Name_Not - 2014/11/12(水) 03:23:18.02 ID:???.net (+31,+3,-31)
よっっぽど特異なコードでない限りNYSLだよ
コピペして問題なし
154 : Name_Not - 2014/11/12(水) 03:27:18.49 ID:???.net (+70,+29,-21)
>>147
結局低質な乱数でもテトリスの方法をいじれば頻度100%だよな
155 : Name_Not - 2014/11/12(水) 04:07:20.49 ID:8jiLDDFT.net (-16,+24,-4)
評価お願いします><


無からギター音
http://jsdo.it/jagarikin/t4Rm
156 : Name_Not - 2014/11/12(水) 04:21:49.12 ID:???.net (+8,+8,+0)
よく出来ました。○
157 : Name_Not - 2014/11/12(水) 04:57:07.25 ID:???.net (-24,-29,-1)
そのスライダー何www
type="range" 使えばいんじゃね
158 : Name_Not - 2014/11/12(水) 05:14:46.95 ID:???.net (-1,-30,-15)
>>144
動画操作はわからんけどとりあえず構文エラーが出てるのはわかるわ
stopVideo();の跡に }); をつければいんじゃね
160 : Name_Not - 2014/11/12(水) 09:29:14.51 ID:l76pun3H.net (+8,+29,-72)
5ボタンマウスの戻る 進むが通常割り当てられているx1 x2をJavascriptで捕捉することって出来ないですか?
特定のサイトでマウスの誤操作による戻るを無効化するスクリプトを書きたいのですが

他に良い案があればそれも教えて頂きたいです。
161 : Name_Not - 2014/11/12(水) 09:33:49.44 ID:???.net (+0,-27,-32)
ホイールだけでブラウザ対応が違うからなあ
何かするサイトじゃなければイベント全部return false;でいんじゃね~
162 : Name_Not - 2014/11/12(水) 09:40:22.06 ID:l76pun3H.net (+4,+29,-30)
何かするサイトなんでそれはちょっと難しいですね…。
使ってるのはFirefoxです。Grease Monkeyでそのサイトでだけ戻るや更新を禁止して作業の損失を防ぎたいのですが、調べてると難しそうですね。
163 : Name_Not - 2014/11/12(水) 09:49:21.77 ID:???.net (+57,+29,-17)
イベント時に何で戻ったかを調べてreturn false;すればよさげだけど
戻る禁止ってブラクラになるからダメなんだっけ
164 : Name_Not - 2014/11/12(水) 10:13:49.13 ID:???.net (-23,-29,-31)
>>160
beforeunloadを設定するブックマークレットを作るのはどう?
俺はこの方法を動画を見る時によく使ってる
165 : Name_Not - 2014/11/12(水) 11:51:12.62 ID:???.net (+91,+29,-19)
>>148
何も注意書きがなければMITライセンスってのになる
これはどこどこからのコピーですといえばコピーしておk
166 : Name_Not - 2014/11/12(水) 12:36:19.31 ID:???.net (+18,-29,-3)
先生!
>>155はinnerHTMLを使ってるようですがいいんですか!?
168 : Name_Not - 2014/11/12(水) 15:38:44.80 ID:eyICY2EO.net (+4,+29,-14)
>>166
ジャガリキン氏の良い所は、とりあえず形にして見せてくれること
細かい善し悪しは、フォークして直していけばいい
169 : Name_Not - 2014/11/12(水) 19:04:18.87 ID:???.net (+53,-30,+0)
var outputlog = function(level, msg){
console.log("["+level+"]"+msg);
};

var outputlogCreator = function(level){
return function(msg){
//outputlog("debug", msg);←間違え?"debug"でなくlevelのはず
outputlog(level, msg);
};
};


var test1 = function(t,logger){
logger('あああああ')

logger('いいいいい')
}

var newoutputlog = outputlogCreator( "DEBUG2");
test1(2,newoutputlog);

クロージャの使い方で雑誌の記事では、
ライブラリtest1のlogger関数は引数1つだけど、引数2つのoutputlogを渡すために、
クロージャを使ったoutputlogCreatorを使う方法が載ってましたが、
var newoutputlog = outputlogCreator( "DEBUG2");の"DEBUG2"を反映させるために
//outputlog("debug", msg);ってoutputlog(level, msg);ではないでしょうか?
170 : Name_Not - 2014/11/12(水) 20:11:16.95 ID:???.net (+81,+29,-24)
>>165
ライセンスが明示されてないなら不明であって本人に聞くまでライセンスは決まらない
「引用」はライセンスに関係なく、自由に出来るけど

>>169
出典は?
引用にもなってない
171 : Name_Not - 2014/11/12(水) 20:32:00.08 ID:???.net (+20,-11,-1)
>>170
>>148
関数の名前とか変数とかは変えてあります。
172 : Name_Not - 2014/11/12(水) 20:40:53.34 ID:???.net (+49,-30,-157)
>>169
汚かったから直した。関数を必要のないのにいちいち変数に入れるなよな。(オリジナルを書いた人へ)
所詮日経ソフトウェアか。

君の言うとおり。そこは間違いだよ。

function outputlog(level, msg) {
 console.log("["+level+"]"+msg);
}

function outputlogCreator(level) {
 return function(msg) {
  outputlog(level, msg);
 };
}

function test1(t, logger) {
 logger('あああああ');
 logger('いいいいい');
}

var newoutputlog = outputlogCreator("DEBUG2");
test1(2, newoutputlog);
173 : Name_Not - 2014/11/12(水) 20:44:37.11 ID:???.net (+36,-29,-41)
なるほど、関数名は君がつけたのか。

outputlogCreator はcreateLoggerの方がいい。
これはクラスじゃなくて関数だから、動詞+名詞 にする。
174 : Name_Not - 2014/11/12(水) 21:11:01.10 ID:???.net (+69,+29,-147)
>>172-173
ありがとうございます。
やっぱ間違えですが、
>汚かったから直した。関数を必要のないのにいちいち変数に入れるなよな。(オリジナルを書いた人へ)
関数を変数に入れるのって、だらしないコードを書かないためって
good partsに書いてあったので、その考え方ではないのかと思ってます。

>>173
はい。関数名には、動詞+名詞って命名します。
日経ソフトウェアでは~Creatorって載ってました。
class使う人書き方だったんですね。

だいたい昼休みは日経ソフトウェア読んでるのですが、コードの
間違えって結構ありますね。
まぁ、掲載プログラムは記事補足用で動作保証しないって冒頭に書いてありますけど
175 : Name_Not - 2014/11/12(水) 21:31:20.50 ID:???.net (+70,+30,-206)
あー、あの本か。あれは俺が考えた最強~略だからな。

なんで「だらしないコード」って言ってるかわかる?
説明できないからなんだよ。

他の言語とか使っていればわかるけど、
普通は関数の順番はどっちを先に書いても良いものなんだ。

変数に代入すると、それができなくなるというデメリットが有る。
順番を考えなくていいものに、わざわざ不要な順番という概念を持ち込むことになる。

それに行頭がfunctionから始まると、ここが処理の開始地点だとぱっと見わかるし、
変数に代入しない分単純にタイプ数が短くなる。

昔から関数の定義は「function 名前」なわけで、式で書けるからといって
なんでも式を使うというのは何も考えてないだけ。適切なものを正しく使うべき。
178 : Name_Not - 2014/11/13(木) 02:30:45.20 ID:???.net (+44,+26,+0)
むり
180 : Name_Not - 2014/11/13(木) 05:17:42.65 ID:???.net (-11,-30,-40)
>>177

すごい無駄だけどこうだね

function osu(){
document.write("<input type='button' onclick='osu()'/>");
document.write("<div>あああ</div>");
}
181 : Name_Not - 2014/11/13(木) 05:18:18.91 ID:???.net (+41,-28,-47)
関数の巻き上げとは、前方宣言がいらないこと
関数定義より先に、その関数を使える
関数宣言(function文)

一方、関数式は、関数を変数に代入したもの

どういう時に、どっちを使えばよいのか、わからない
182 : Name_Not - 2014/11/13(木) 05:27:09.36 ID:???.net (+57,+29,-17)
既存のくそ長い関数名を短くできるぐらいかな
183 : Name_Not - 2014/11/13(木) 05:35:51.02 ID:???.net (+9,-30,-131)
こーゆーの?funcはいつ使うかわからないとして

if(なんたらかんたら){
func=function(){alert("なんたら");}
}else{
func=function(){alert("かんたら");}
}

func();
184 : Name_Not - 2014/11/13(木) 08:46:51.99 ID:???.net (+59,-29,-112)
>>176
function文は存在しない(Firefoxにそれらしき独自拡張はあるけど)
関数宣言や関数定義というならわかる

> function式はどこに書いても動くのがだらしないコード
関数定義とfunction式を逆に覚えてるんじゃないか?
関数定義なら関数スコープの始めに変数の実体化が発生するのだが
その手のコーディングスタイルを気にするなら関数の始めに関数定義、変数宣言すると良い
function式を使うのなら関数名は付けた方がよい(IE8-の名前付き関数式の挙動に注意)
185 : Name_Not - 2014/11/13(木) 08:50:28.83 ID:???.net (+52,+24,-86)
>>155
全ては読んでないんだが、グローバル変数を多数定義しているのが一番気になる
createElement を多用しながら innerHTML を使うスタイルにも違和感があるが
186 : Name_Not - 2014/11/13(木) 09:34:45.80 ID:???.net (+57,+29,-18)
関数式は俗に言う無名関数とかいうやつでもよく使うね
187 : Name_Not - 2014/11/13(木) 09:49:06.32 ID:???.net (-1,-29,-1)
var a;
a();
a=function(){}
189 : Name_Not - 2014/11/13(木) 11:14:42.33 ID:???.net (-17,-30,-54)
>>183
そういう状況も有り得るね
あと、Google Style Guideには
×
if (x) {
function foo() {}
}

if (x) {
var foo = function() {};
}
と書いてある
現状のJavaScriptエンジンでは問題無く動くようだが、ブロック内にfunctionを書くのは
未定義な仕様だから将来的な事を考えてやめとけということだ
190 : Name_Not - 2014/11/13(木) 13:29:59.48 ID:???.net (+51,+29,-53)
>>188
「他のスクロール」の定義が分からんのだが、具体的に何が違う?
ノードが違えば event.currentTarget で判断可能だろう
191 : Name_Not - 2014/11/13(木) 19:42:48.59 ID:???.net (+9,-30,-130)
>>189
> ブロック内にfunctionを書くのは未定義な仕様だから

そもそもifでfunctionって書きたいことってないだろう?

動的に関数を作りたい時と静的に関数を作りたい時
人はこの二つを完全に区別して考えてるよね?

function foo() { } って書いてあったら
この関数はfooという名前であり、fooにはこの関数以外になることはない。

var foo = function() {} って書いてあったら
これ多態かな? もしかしてfooには別の関数が入ることがある。
と考えてるでしょ?

ifの中でfunctionを書きたくなることはないが、
fooに関数を代入したいことはある。それはifの条件によって
fooに入れる関数を変えたい時。すなわち多態。

fooに入れる関数が変わらないのならfunction foo() {} って書いたほうが
明確だよね。
192 : Name_Not - 2014/11/13(木) 19:44:27.42 ID:???.net (+67,+29,-35)
>>181
> どういう時に、どっちを使えばよいのか、わからない

普通は関数定義だよ。なぜなら殆どの場合
関数の名前(変数)とそれが示す関数は変わらないから。

もし、変数に入れる関数が変わることがあるならば、
関数式を使えば良い。
194 : Name_Not - 2014/11/13(木) 20:55:35.08 ID:???.net (+2,-30,-235)
>>191
>var foo = function() {} って書いてあったら
>これ多態かな? もしかしてfooには別の関数が入ることがある。
関数定義でも後から再代入すれば foo が別の関数を参照する状況を作り出せるはずだが

function foo () { console.log('a'); }
function hoge () { console.log('b'); }
foo = hoge;
foo(); // b

関数式にすれば、現仕様(ES5)でも>>189の状況を作り出すことは出来る

var x =0.
foo = x ? function foo () { console.log(foo.name); } : function hoge () { console.log(hoge.name); };
foo(); // hoge

多態性は String.prototype.toString と Object.prototype.toString の関係と理解していたのだが、私の理解が間違っているのだろうか
195 : Name_Not - 2014/11/13(木) 21:14:45.88 ID:???.net (-28,-30,-103)
>>184
>function文は存在しない(Firefoxにそれらしき独自拡張はあるけど)
>関数宣言や関数定義というならわかる

good parts 132ページには、
これはfunction文だ
function foo() {}

って載ってるのですが、function文って言い方が関数宣言や関数定義って
言う方が正しいってことですか?
または、good partsって2008年に出版されたので、function文って言い方
がもう2014年ではしないってことでしょうか?
196 : Name_Not - 2014/11/13(木) 21:37:37.15 ID:???.net (-1,-29,-9)
function hoge() {
}

これはステートメントなんじゃないか?
197 : Name_Not - 2014/11/13(木) 21:43:55.98 ID:???.net (+7,-30,-118)
$("#ultest > li").on("click",function(){
alert("test");
});

$("#add").click(function(){
$("#ultest").append("<li>あああ</li>");
});


これで後から追加したli要素をクリックしてもポップアップが出ません。
onって将来的に追加した要素でも動くんじゃなかったんでしょうか?
198 : Name_Not - 2014/11/13(木) 22:04:25.26 ID:???.net (-29,-30,-101)
function hoge(){} は FunctionDeclaration。あえて日本語で言えば「関数宣言」(関数文とも言うらしい?ググったら出てくるので)
(function hoge(){}) は FunctionExpression。あえて日本語で言えば「関数式」

関数宣言はStatement(ステートメント)に含まれない
http://www.ecma-international.org/ecma-262/5.1/#sec-14
関数式はStatement(ステートメント)に含まれる
http://www.ecma-international.org/ecma-262/5.1/#sec-A.4
199 : Name_Not - 2014/11/13(木) 22:21:18.64 ID:???.net (+31,-30,-43)
>>197
書き方が違う。こうだよ。

$(document).on("click", "#ultest > li", function(){
alert("test");
});
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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