私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ+ JavaScript の質問用スレッド vol.114 +
JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
変数Aに、変数Bの名前が入っています
変数Aを使って、その空間で変数Bを参照した時と同じ結果を得るにはどうしたらいいでしょうか
変数Aを使って、その空間で変数Bを参照した時と同じ結果を得るにはどうしたらいいでしょうか
Object <- Function <- constructor
関数やインスタンスは、
Functionオブジェクトで良いんだろ?
関数やインスタンスは、
Functionオブジェクトで良いんだろ?
>>806
> 関数やインスタンスは、Functionオブジェクトで良いんだろ?
Functionオブジェクトが何を指しているのか今一不明だが、少なくとも [[Call] を持つオブジェクトじゃない
function A () {
console.log(A !== this); // true
}
console.log(typeof new A); // object
> 関数やインスタンスは、Functionオブジェクトで良いんだろ?
Functionオブジェクトが何を指しているのか今一不明だが、少なくとも [[Call] を持つオブジェクトじゃない
function A () {
console.log(A !== this); // true
}
console.log(typeof new A); // object
>>805
http://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/eval#Don.27t_use_eval.21
Strict Mode で使用できないし、基本的にそのような使い方は推奨されない
http://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/eval#Don.27t_use_eval.21
Strict Mode で使用できないし、基本的にそのような使い方は推奨されない
> thisは、そのオブジェクトを指す
> 関数もオブジェクトなので、関数が異なると、thisも異なる
つまり、thisで参照するためには>>790の書き方ではダメってことですか?
たかだかthisで参照するだけなのに、制限があるってめんどいですねー
> 関数もオブジェクトなので、関数が異なると、thisも異なる
つまり、thisで参照するためには>>790の書き方ではダメってことですか?
たかだかthisで参照するだけなのに、制限があるってめんどいですねー
>>812
> 普通は無名関数を使う。
その理屈はおかしい
登録されているListenerを解除することを考えたらハンドラ登録には名前付き関数を使う
jQueryは関数指定なしでもイベントハンドラ削除できる機構が用意されているが、それでも特定のハンドラのみを解除することを考えたら名前付き関数を使用するしかない
removeEventListener を使い慣れている人なら名前付き関数を使用するかもしれないし、その書き方が望ましいケースは確かにある
Function.prototype.bind は>>790のようなケースで利用されるものだと思う
そもそも、無名関数の多量生産は無駄にクロージャを作るという意味では良い設計とは言えない
jQueryは無名関数を多用する書き方が好まれる傾向にあるが、あの書き方ではデメリットもあることを覚えておいた方がいい
> 普通は無名関数を使う。
その理屈はおかしい
登録されているListenerを解除することを考えたらハンドラ登録には名前付き関数を使う
jQueryは関数指定なしでもイベントハンドラ削除できる機構が用意されているが、それでも特定のハンドラのみを解除することを考えたら名前付き関数を使用するしかない
removeEventListener を使い慣れている人なら名前付き関数を使用するかもしれないし、その書き方が望ましいケースは確かにある
Function.prototype.bind は>>790のようなケースで利用されるものだと思う
そもそも、無名関数の多量生産は無駄にクロージャを作るという意味では良い設計とは言えない
jQueryは無名関数を多用する書き方が好まれる傾向にあるが、あの書き方ではデメリットもあることを覚えておいた方がいい
>>812
普段は.NET + AS3で開発しているので、jsを触ることはないんでよくわからないんですが
jsではクラス使わないほうがいいんですかね?
会社で他の人が作っているERPみたら、クラス使っていなかったんです
普段は.NET + AS3で開発しているので、jsを触ることはないんでよくわからないんですが
jsではクラス使わないほうがいいんですかね?
会社で他の人が作っているERPみたら、クラス使っていなかったんです
>>813
> 登録されているListenerを解除することを考えたらハンドラ登録には名前付き関数を使う
そんなの解除するときだけ考えればいいことでしょ?
通常イベントハンドラを削除したい時は要素を削除する時で、
jQueryで要素を削除すれば、それに関連したイベントハンドも一緒に解除されて
メモリリークも起きないのだからそこは気にする必要がない。
要素は存在するのにイベントだけを削除することはほとんどない。
一時的に無効にしたい場合でも、classで状態を変化させて、セレクタで切り分ける
> 登録されているListenerを解除することを考えたらハンドラ登録には名前付き関数を使う
そんなの解除するときだけ考えればいいことでしょ?
通常イベントハンドラを削除したい時は要素を削除する時で、
jQueryで要素を削除すれば、それに関連したイベントハンドも一緒に解除されて
メモリリークも起きないのだからそこは気にする必要がない。
要素は存在するのにイベントだけを削除することはほとんどない。
一時的に無効にしたい場合でも、classで状態を変化させて、セレクタで切り分ける
YAGNIって考え方だね。
プログラムってのは将来どう成長するか不明なものだから、
不明だから解除する場合のことまで考えておくという発想だと
すべて解除可能にしなきゃいけない。
その考えていけば拡張可能にしなきゃいけないとか
言い出しそうだし、prototype使う必要がない場面でも
不明だから、とりあえず使うとかいうことになりかねない。
拡張可能にすることで、コードが膨れないのならいいけど、
この場合は明らかに現在必要がないコードを書くことになってる。
こうやって必要のない無駄なコードをどんどん書くことになる。
これはYAGNIの原則に反する。
プログラムってのは将来どう成長するか不明なものだから、
不明だから解除する場合のことまで考えておくという発想だと
すべて解除可能にしなきゃいけない。
その考えていけば拡張可能にしなきゃいけないとか
言い出しそうだし、prototype使う必要がない場面でも
不明だから、とりあえず使うとかいうことになりかねない。
拡張可能にすることで、コードが膨れないのならいいけど、
この場合は明らかに現在必要がないコードを書くことになってる。
こうやって必要のない無駄なコードをどんどん書くことになる。
これはYAGNIの原則に反する。
無名関数を利用する事と>>790の問題がどう関係しているのかわからない
「new Index() な書き方は避けて全部無名関数を使用すればいいよ」って主張してるの?
「new Index() な書き方は避けて全部無名関数を使用すればいいよ」って主張してるの?
というか、
var Index = function () {};
これで全て無名関数になるんだが…
もう少し、クリティカルな話をして欲しい
var Index = function () {};
これで全て無名関数になるんだが…
もう少し、クリティカルな話をして欲しい
>>824
無名関数を使用する事でどうやってthis値を束縛するの?
具体的なコードを示して欲しい
無名関数内で Function.prototype.call を使う解決方法もあるけど、Function.prototype.call が解決法だし、Function.prototype.bind を否定する要素がない
無名関数を使用する事でどうやってthis値を束縛するの?
具体的なコードを示して欲しい
無名関数内で Function.prototype.call を使う解決方法もあるけど、Function.prototype.call が解決法だし、Function.prototype.bind を否定する要素がない
>>825
無名関数に名前付けた場合それは無名関数なのか
無名関数に名前付けた場合それは無名関数なのか
>>827
変数に格納しただけで無名関数
そもそも、無名関数を名前付き関数に変更する方法はないと思うんだが(あるなら教えて欲しい)
非標準の Function.prototype.name も読み取り専用だし
変数に格納しただけで無名関数
そもそも、無名関数を名前付き関数に変更する方法はないと思うんだが(あるなら教えて欲しい)
非標準の Function.prototype.name も読み取り専用だし
var a = {
b: 1
};
var c = a.b;
のとき
delete(c);
としても、a.bは削除されません
delete(a.b);
とすると削除されます
delete関数の引数が普通の関数と異なり「必ず参照渡し」になっているということだと思いますが
プログラマーが明示的にこういう関数を作ることは出来ないのでしょうか?
b: 1
};
var c = a.b;
のとき
delete(c);
としても、a.bは削除されません
delete(a.b);
とすると削除されます
delete関数の引数が普通の関数と異なり「必ず参照渡し」になっているということだと思いますが
プログラマーが明示的にこういう関数を作ることは出来ないのでしょうか?
jsのthisの仕様どうにかして欲しいですね
他の言語を使ってきた人が、間違えてしまう
jsは柔軟性がある言語だと主張している人がいますが、
書き方が自由なだけであって柔軟性があるとはまた違う気がする
柔軟性 == それなりの規模のアプリケーションを作れる
他の言語を使ってきた人が、間違えてしまう
jsは柔軟性がある言語だと主張している人がいますが、
書き方が自由なだけであって柔軟性があるとはまた違う気がする
柔軟性 == それなりの規模のアプリケーションを作れる
>>827
いちおう名前を付けることはできるけどな
var f1 = function f2(){
alert(f1.name);
}
f1(); // "f2"
f2(); // エラー(名前を付けたからと言って呼び出せるわけではない)
いちおう名前を付けることはできるけどな
var f1 = function f2(){
alert(f1.name);
}
f1(); // "f2"
f2(); // エラー(名前を付けたからと言って呼び出せるわけではない)
関数名を後で変更できたら怖い
var hoge = function foo () { console.log(foo.name); }
hoge.name = 'piyo'; // 書き換え可能だったとする(※実際は書き換え不可)
hoge(); // ReferenceError: foo is not defined
var hoge = function foo () { console.log(foo.name); }
hoge.name = 'piyo'; // 書き換え可能だったとする(※実際は書き換え不可)
hoge(); // ReferenceError: foo is not defined
>>837
知らなかった、ありがとう、早速使ってみる
知らなかった、ありがとう、早速使ってみる
>>832
> f2(); // エラー(名前を付けたからと言って呼び出せるわけではない)
IE8 には f2 で呼び出せるバグがあったんだよね
当時は予期せぬ不具合を生み出しそうで使うのを敬遠してた
http://blogs.msdn.com/b/ie/archive/2010/06/25/enhanced-scripting-in-ie9-ecmascript-5-support-and-more.aspx
> f2(); // エラー(名前を付けたからと言って呼び出せるわけではない)
IE8 には f2 で呼び出せるバグがあったんだよね
当時は予期せぬ不具合を生み出しそうで使うのを敬遠してた
http://blogs.msdn.com/b/ie/archive/2010/06/25/enhanced-scripting-in-ie9-ecmascript-5-support-and-more.aspx
今日一日thisを調べてみたのですが、間違えていないか教えてください。
this -> 呼び出し元のオブジェクトがセットされる。javaのthisとは違う
クラスっぽいものを作って、それのメンバ関数をイベントリスナーに登録する際は、
bind/applyとかを使ってthisにセットされるインスタンスを指定してあげなければならない。
あってますか?
this -> 呼び出し元のオブジェクトがセットされる。javaのthisとは違う
クラスっぽいものを作って、それのメンバ関数をイベントリスナーに登録する際は、
bind/applyとかを使ってthisにセットされるインスタンスを指定してあげなければならない。
あってますか?
メソッドたる関数オブジェクトが、親オブジェクトと密接に結び付いてないから
thisが文脈によってコロコロ変わるんだよな
thisが文脈によってコロコロ変わるんだよな
>>816
要するに、行き当たりばったりサイコーって事ですね
要するに、行き当たりばったりサイコーって事ですね
aタグが混ざっているhtmlから
aタグを普通の文字列に変換するにはどうしたらいいですか?
jqueryありでお願いします
aタグを普通の文字列に変換するにはどうしたらいいですか?
jqueryありでお願いします
>>840
bind使わないんだったら
function Index() {
$('[id="htmlForm:button1"]').click((function (that) {
return function () {
that.say();
};
})(this));
this.count = "aa";
}
こんな感じ
まあ面倒だわな
bind使わないんだったら
function Index() {
$('[id="htmlForm:button1"]').click((function (that) {
return function () {
that.say();
};
})(this));
this.count = "aa";
}
こんな感じ
まあ面倒だわな
>>848
ごめん、良く考えたら call では無理だった
ごめん、良く考えたら call では無理だった
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
みんなの評価 : 類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.113 + (1001) - [97%] - 2014/1/25 12:46
- + JavaScript の質問用スレッド vol.118 + (1002) - [97%] - 2014/8/29 22:30
- + JavaScript の質問用スレッド vol.116 + (1002) - [97%] - 2014/7/1 0:45
- + JavaScript の質問用スレッド vol.115 + (1001) - [97%] - 2014/5/29 16:16
- + JavaScript の質問用スレッド vol.113 + (1001) - [97%] - 2014/3/15 21:30
- + JavaScript の質問用スレッド vol.119 + (1002) - [97%] - 2014/10/3 15:30
- + JavaScript の質問用スレッド vol.112 + (1001) - [97%] - 2013/11/27 16:46
- + JavaScript の質問用スレッド vol.111 + (1001) - [97%] - 2013/11/4 6:00
- + JavaScript の質問用スレッド vol.110 + (1001) - [97%] - 2013/10/13 14:01
- + JavaScript の質問用スレッド vol.134 + (1001) - [97%] - 2018/8/3 23:15
- + JavaScript の質問用スレッド vol.117 + (1009) - [97%] - 2014/8/5 3:30
- + JavaScript の質問用スレッド vol.104 + (1001) - [97%] - 2013/1/28 4:00
- + JavaScript の質問用スレッド vol.124 + (1001) - [97%] - 2015/7/16 1:30
- + JavaScript の質問用スレッド vol.144 + (288) - [97%] - 2020/5/17 20:00
- + JavaScript の質問用スレッド vol.121 + (1001) - [95%] - 2015/1/1 18:30
- + JavaScript の質問用スレッド vol.120 + (1002) - [95%] - 2014/11/8 1:15
- + JavaScript の質問用スレッド vol.122 + (1004) - [95%] - 2015/2/14 4:45
トップメニューへ / →のくす牧場書庫について