私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ+ JavaScript の質問用スレッド vol.142 +
JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
>>842
> 1から100までの値がランダムで配列される時に
日本語を頑張れ
> indexOf("1")>=0?"りんご"にすると
> 10もりんごになっちゃいます。
Array#indexOfは10にマッチしない
> 1から100までの値がランダムで配列される時に
日本語を頑張れ
> indexOf("1")>=0?"りんご"にすると
> 10もりんごになっちゃいます。
Array#indexOfは10にマッチしない
[2,3,10] は、数値の配列でしょ?
indexOf("1")
"1" は、文字列じゃん
型が異なると、バグる
indexOf("1")
"1" は、文字列じゃん
型が異なると、バグる
function hoge(callback){
console.log( callback(10,20) );
console.log("callbackの引数の名前を知りたい xxxとyyy");
console.log(callback.toString().match(/^\((.*),(.*)\)/).filter((_,i)=>i%3!==0));
}
hoge((xxx,yyy)=>xxx+yyy);
と、しましたがもっとスッキリ書けないものでしょうか?
console.log( callback(10,20) );
console.log("callbackの引数の名前を知りたい xxxとyyy");
console.log(callback.toString().match(/^\((.*),(.*)\)/).filter((_,i)=>i%3!==0));
}
hoge((xxx,yyy)=>xxx+yyy);
と、しましたがもっとスッキリ書けないものでしょうか?
引数が一個のときも考慮したいし
function()なんたらのときも
_=> みたいに()が無いときも考慮するには
やはり全部の場合分けしかないのでしょうか?
function()なんたらのときも
_=> みたいに()が無いときも考慮するには
やはり全部の場合分けしかないのでしょうか?
引数の数が異なるなら、オブジェクト指向で言う、関数のoverload・多重定義だろ。
JavaScript には無いけど、jQuery は、引数の型を調べて、場合分けして作っていたかも?
デフォルト値ありの引数か、配列・辞書渡しにするか。
オプションなどは、辞書で渡す
引数の数が変わる、可変引数もあるのか?
JavaScript には無いけど、jQuery は、引数の型を調べて、場合分けして作っていたかも?
デフォルト値ありの引数か、配列・辞書渡しにするか。
オプションなどは、辞書で渡す
引数の数が変わる、可変引数もあるのか?
>>850
とりあえず引数名が何個で何かを判別するオプションを引数に入れて多重定義で一時的に対応することにしました
ただ引数名は限定的になりそうなので渡す関数の書式を制限して関数そのものの文字列から判別する方法もやろうと思います
ありがとうございました
とりあえず引数名が何個で何かを判別するオプションを引数に入れて多重定義で一時的に対応することにしました
ただ引数名は限定的になりそうなので渡す関数の書式を制限して関数そのものの文字列から判別する方法もやろうと思います
ありがとうございました
>>853
例えばforEachするときやmapするとき
最初の引数はindexだったかそれともvalueだったか?忘れてしまうことが多かったので
callbackの記述が
function(index,value),function(index),function(value),function(value,index)だったら
その通りに勝手に解釈してもらいたいなぁと思ったのです
例えばforEachするときやmapするとき
最初の引数はindexだったかそれともvalueだったか?忘れてしまうことが多かったので
callbackの記述が
function(index,value),function(index),function(value),function(value,index)だったら
その通りに勝手に解釈してもらいたいなぁと思ったのです
アロー関数使うときに、引数が一個しかなければ
i=>{}みたいに書けるけど、引数が2個の場合
(i,val)=>{}と書いて、valしか使わないのに・・
みたいな場面に出くわしてじゃあ最初から
val=>{}で書いたときはーーみたいな感じだったのです
i=>{}みたいに書けるけど、引数が2個の場合
(i,val)=>{}と書いて、valしか使わないのに・・
みたいな場面に出くわしてじゃあ最初から
val=>{}で書いたときはーーみたいな感じだったのです
まぁ引数の数だけが問題ならイコール引数の順序を覚えている
ということなので、普通に既存のライブラリ使うかなと。
ということなので、普通に既存のライブラリ使うかなと。
そういうのは型付言語ならできるだろう
map(i:int=>i*2)
map(val:string=>var+"abc")
みたいな感じだ
だが、valもintだったらどうなるだろうか?区別がつかない。
そこでint型とindex型は分けるべきではないだろうか?
map(i:index=>i*2)
map(val:int=>val*2)
つまりこういうわけだな
そして思うのは、indexとかintという型は冗長というわけだ
ならここで型名変数という概念があっても良いのかもしれないな
型名をそのまま変数として使える書き方だ
map(:index=>index*2)
map(:string=>string*2)
夢は膨らんでいくな!
map(i:int=>i*2)
map(val:string=>var+"abc")
みたいな感じだ
だが、valもintだったらどうなるだろうか?区別がつかない。
そこでint型とindex型は分けるべきではないだろうか?
map(i:index=>i*2)
map(val:int=>val*2)
つまりこういうわけだな
そして思うのは、indexとかintという型は冗長というわけだ
ならここで型名変数という概念があっても良いのかもしれないな
型名をそのまま変数として使える書き方だ
map(:index=>index*2)
map(:string=>string*2)
夢は膨らんでいくな!
何を言ってるんだか ここは阿呆ばかりなのか?
オーバーライドは関数と引数の取り回しが不自由なJavaのような言語で
柔軟さをなんとか実現するための苦肉の策であってJSには最も必要ない部類の機能だろ
オーバーライドは関数と引数の取り回しが不自由なJavaのような言語で
柔軟さをなんとか実現するための苦肉の策であってJSには最も必要ない部類の機能だろ
オーバーライドじゃなくてオーバーロードな(呆)
JavaじゃなくてC++の時代からあるよ
JavaじゃなくてC++の時代からあるよ
オーバーライドじゃなくてオーバーロードな ←潔癖症
JavaじゃなくてC++の時代からあるよ ←アスペ
JavaじゃなくてC++の時代からあるよ ←アスペ
jqueryでアロー関数のthisがwindowになるのなんとかならんの
$([3,4,5]).each(function(){ console.log(this) });
$([3,4,5]).each(()=>{ console.log(this) });
第一引数つかえっていう話ではなく
$([3,4,5]).each(function(){ console.log(this) });
$([3,4,5]).each(()=>{ console.log(this) });
第一引数つかえっていう話ではなく
>>865
jQueryとは関係ない。DOM APIもそうだからどうしようもない
jQueryとは関係ない。DOM APIもそうだからどうしようもない
ES6 のアロー関数は、たぶん、クロージャなんだろ。
外の環境のthis を、そこまでの文脈で、静的に確定させて取り込んでしまう
レシーバーのthis じゃない
外の環境のthis を、そこまでの文脈で、静的に確定させて取り込んでしまう
レシーバーのthis じゃない
jQueryの基礎部分を書いてみたのですが
http://jsfiddle.net/5nhoL081/
これをclass構文で表現するにはどうやればいいのでしょうか?
http://jsfiddle.net/kabn84sz/
やってはみたものの動くには動いたのですが
if(!f){return thisを外したらinitがnot functionだと言われたり
腑に落ちない点がいろいろとあります
http://jsfiddle.net/5nhoL081/
これをclass構文で表現するにはどうやればいいのでしょうか?
http://jsfiddle.net/kabn84sz/
やってはみたものの動くには動いたのですが
if(!f){return thisを外したらinitがnot functionだと言われたり
腑に落ちない点がいろいろとあります
>>865
jQuery関係ない
functionの中でthisはそもそもグローバル(かundefined)
メソッドやイベントリスナとして発火するときは
そのオブジェクトが束縛(バインド)される
アロー関数はイベントリスナになっても
束縛がないんだね
jQuery関係ない
functionの中でthisはそもそもグローバル(かundefined)
メソッドやイベントリスナとして発火するときは
そのオブジェクトが束縛(バインド)される
アロー関数はイベントリスナになっても
束縛がないんだね
あとjQueryのeachとかで使うthisは
ピュアJSのものではなく
jQueryが独自にバインドしているものなのでご注意を
ピュアJSのものではなく
jQueryが独自にバインドしているものなのでご注意を
class Hoge{
constructor(){
console.log(new Fuga());
}
}
class Fuga extends Hoge{
f(){}
}
var hoge = new Hoge();
//Maximum call stack size exceeded
//となってしまうので
class Hoge{
constructor(f){
if(!!f){
console.log(new Fuga());
}
}
}
class Fuga extends Hoge{
f(){}
}
var hoge = new Hoge(true);
//ifをかますと親コンストラクタで子をnewできるみたいというのはわかりましたが
//これはなんかのテクニックなのでしょうか??それとも普通はこんなことしないということでしょうか
constructor(){
console.log(new Fuga());
}
}
class Fuga extends Hoge{
f(){}
}
var hoge = new Hoge();
//Maximum call stack size exceeded
//となってしまうので
class Hoge{
constructor(f){
if(!!f){
console.log(new Fuga());
}
}
}
class Fuga extends Hoge{
f(){}
}
var hoge = new Hoge(true);
//ifをかますと親コンストラクタで子をnewできるみたいというのはわかりましたが
//これはなんかのテクニックなのでしょうか??それとも普通はこんなことしないということでしょうか
ifを咬ませてfalseのとき通らない説明はしようがないね
自明だから
自明だから
>>874
ちなみにこの循環にはどんな意味があるん?
ちなみにこの循環にはどんな意味があるん?
ライブラリ内で$()を使っても循環してるわけじゃないだろ
無知って恐ろしいな
無知って恐ろしいな
Hogeがコンストラクタ関数でnew Fuga() してるのに
FugaがHogeを継承しちゃってるからループして
なんどもなんどもフガフガしちゃって
Maximum call stack size exceeded なわけじゃん?
なんでFugaはHogeを継承すんのかなって
FugaがHogeを継承しちゃってるからループして
なんどもなんどもフガフガしちゃって
Maximum call stack size exceeded なわけじゃん?
なんでFugaはHogeを継承すんのかなって
FugaからHogeを参照したいだけなら
Hogeのコンストラクタ関数で
new Fuga(this);
ってするだけじゃいかんかね?
Hogeのコンストラクタ関数で
new Fuga(this);
ってするだけじゃいかんかね?
>>876,880,881
なるほど、心をまっさらにして改めて考えたところ、すんなり解決しました
http://jsfiddle.net/4o3zq1v5/
initをextendsするのはなぜなのかはわかりませんがそのバージョン
http://jsfiddle.net/pmrhub5y/
そもそもjQueryのソースコードをみるとなぜわざわざinitを継承させているのか
はわかりませんが、つまり
http://jsfiddle.net/rb5czox2/
こういうふうにすればいいのに、と思うのですが・・
$文字で静的なユーティリティ関数を使えるからでしょうか($=jQueryと置くとinitをnewしないといけないので)、わかりません
なるほど、心をまっさらにして改めて考えたところ、すんなり解決しました
http://jsfiddle.net/4o3zq1v5/
initをextendsするのはなぜなのかはわかりませんがそのバージョン
http://jsfiddle.net/pmrhub5y/
そもそもjQueryのソースコードをみるとなぜわざわざinitを継承させているのか
はわかりませんが、つまり
http://jsfiddle.net/rb5czox2/
こういうふうにすればいいのに、と思うのですが・・
$文字で静的なユーティリティ関数を使えるからでしょうか($=jQueryと置くとinitをnewしないといけないので)、わかりません
一応ソースコードそのまま風にinitを継承したやつです
http://jsfiddle.net/ca98kq0z/
http://jsfiddle.net/ca98kq0z/
なんでこれだけヒント上げてんのにconsole.log()を挟んだりして確認しないの?
いつ何がなんて考えたら分かるし
分からないのなら色々試して分かるように見つけるべきでしょ
あんだけの短いコードなんだから
それともnew演算子の挙動から丁寧に何レスも使って長大にド答えを書いてほしいの?
いつ何がなんて考えたら分かるし
分からないのなら色々試して分かるように見つけるべきでしょ
あんだけの短いコードなんだから
それともnew演算子の挙動から丁寧に何レスも使って長大にド答えを書いてほしいの?
訂正 >親の中で子をnewすると
>親のコンストラクタの中で、子をnewすると
>親のコンストラクタの中で、子をnewすると
じゃあ逆に考えてみたら良いじゃない
デバッグの基本だよ
後半コードでもif通ったあとにエラーがでるのでは?
ならエラーが出てないのならifを通ってないのでは?
あれどうして通ってないんだっけってなるでしょ
デバッグの基本だよ
後半コードでもif通ったあとにエラーがでるのでは?
ならエラーが出てないのならifを通ってないのでは?
あれどうして通ってないんだっけってなるでしょ
if(!!f){
の前に
console.log(f)
でしょ
if(!!f)の動作はfに依存してるのだから、fを調べないと始まらないでしょ
の前に
console.log(f)
でしょ
if(!!f)の動作はfに依存してるのだから、fを調べないと始まらないでしょ
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
みんなの評価 : 類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.142 + (984) - [100%] - 2020/8/27 19:15
- + JavaScript の質問用スレッド vol.102 + (1001) - [97%] - 2012/9/11 17:30
- + JavaScript の質問用スレッド vol.112 + (1001) - [97%] - 2013/11/27 16:46
- + JavaScript の質問用スレッド vol.132 + (1001) - [97%] - 2018/4/19 11:00
- + JavaScript の質問用スレッド vol.122 + (116) - [97%] - 2018/5/2 18:30
- + JavaScript の質問用スレッド vol.141 + (881) - [97%] - 2021/4/19 9:00
- + JavaScript の質問用スレッド vol.140 + (1001) - [97%] - 2019/9/19 10:45
- + JavaScript の質問用スレッド vol.141 + (1001) - [97%] - 2019/9/22 23:15
- + JavaScript の質問用スレッド vol.143 + (753) - [97%] - 2020/4/19 5:00
- + JavaScript の質問用スレッド vol.144 + (288) - [97%] - 2020/5/17 20:00
- + JavaScript の質問用スレッド vol.122 + (1004) - [97%] - 2015/2/14 4:45
- + JavaScript の質問用スレッド vol.123 + (966) - [95%] - 2020/10/20 2:30
- + JavaScript の質問用スレッド vol.123 + (1002) - [95%] - 2015/4/27 23:30
- + JavaScript の質問用スレッド vol.115 + (1001) - [95%] - 2014/5/29 16:16
- + JavaScript の質問用スレッド vol.121 + (1001) - [95%] - 2015/1/1 18:30
- + JavaScript の質問用スレッド vol.121 + (1001) - [95%] - 2022/11/29 16:30
- + JavaScript の質問用スレッド vol.120 + (1002) - [95%] - 2014/11/8 1:15
トップメニューへ / →のくす牧場書庫について