You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
※仕様の細かいツッコミはご勘弁を…。 オブジェクト指向で解く みんな大好きオブジェクト指向では、物単位で考えます。言わずもがなですね。やり方はいろいろあると思いますが、まずお弁当という単位で集めると 唐揚げお弁当クラス 状態 主食名 唐揚げ個数 値段 … 振る舞い: つまみ食い() 値段取得() 唐揚げ個数取得() … のような感じで、弁当に必要な要素と必用な処理をひとまとまりにして扱うというのがオブジェクト指向です。 お弁当スーパークラスを作って継承で唐揚げ弁当クラスを、というように拡張を考えた設計にするというのも汎用性が必要な場合は良いと思います。 では早速コードにしてみましょう。 言語はJavaScriptにしています。 (function(){ window.onload=function(){ ////////////////// // クラスの定義 // ///////////
最近ミクシイアプリ作ってます。(むだづかい告白帳、マイミクイズ) agoです。 このたびjavascript test framework Sweets.jsを作成したのでご紹介したいと思います。 Documents Download JSのtest frameworkはすでに各種ありますが、以下の点を満たすものがなかったので自作しました。 無名関数のテスト callback関数のテスト エラー発生時の行番号取得 以下の形でテストを記述できます。 /*###=> var func = __CODE__ $_$(func(1) === 1); $_$(func(2) === 4); $_$(func(2) === 5); // -> console.warnに行番号を出力 */ var result = (function (arg) { return arg * arg; })(1); 内
JavaScriptにおいて関数というのはFunctionオブジェクトで、他のビルトインオブジェクトと同様に、組み込みのメソッドがある。これがapplyとcallしかないのだけれど、こんな感じに使う。 func.apply(thisObj,arguments) func.call(thisObj,arg1,arg2,arg3) thisObjには、その関数内で「this」として使うオブジェクトを指定する。applyの第二引数はargumentsオブジェクトを指定する。配列か、現在実行中の関数のargumentsオブジェクトを丸ごと別の関数に引き渡せる。つまり引数の長さが良くわかってなくても使える。 callは代わりに func.apply(thisObj,[arg1,arg2,arg3]) と書けるので、実はいらないんじゃないかと思う。 これらは多分、ふつうにJavaScriptを書く上で
2008年02月04日07:00 カテゴリLightweight Languages λ Calculus - まずは遅延評価から うーん、まずY Combinatorというのはおじさんたちが悪かったかな。ギター習いたてでいきなりFの音を出すようなもんだから。 Haskell のリストと遅延評価が少し分かった - IT戦記 Y コンビネータって何? - IT戦記 まずは、遅延評価についてきちんとおさらいしておこう。 慌てるな、ループは急に止まらない まずは、以下の式を考えてみる。 (function(a, b, c){ return a ? b : c; })(true, 1, 1+1); 実行してみると、1となるはずだ。しかしここで重要なのはこのことじゃない。後ろの1+1が実行されるかだ。このことはどうやって確認したらよいだろうか。以下のようにしてみればいいはずだ。 var ELSE =
こんなふうに書けるようになるよ この tz.$F_list を使って、例えば var Sequence= tz.$F_list.$struct({ _call_next: function(obj,next,args){ var self= this; setTimeout( function(){ // 関数を実行して、戻り値を「次」に渡す // next(obj.apply(this,args)); でも同じ self.$super._call_next(obj,next,args); },this.interval()); }, interval: function(){ return 500; } }); のようなオブジェクトを用意しておけば、 var $n=111; var fn= Sequence.from( function f1(i){ console.log(i); //
つーかなんか勘違いされる事があるけど私javascript強者じゃないいですけど・・・・。 なんというか、うまくなる方法ってわけでもないけど思いついたものをサラリ。 大したことやってなくても周りから「なんか凄いできる人みたい」って思われたい的なメソッドかな。 なんでコードの見た目も重視ですよと。 関数を引き数に取る小さな関数を作る これはmapやfilterの事なんだけど小さな関数をそーいうのを書いておくと楽ですよと。 配列関連 は特に重要。 あとflattenなどは関数をapplyで一発で呼べるようになるので実装してるといいかも。 関数を作る関数を作る これは重要。というか重宝すると思う。 特にscopeを意識する場合は必須になるんかなと。 あとは遅延実行ね。 関数型のようにかっこよくキメたいあなたにはうってつけかなと。 for文撲滅 これもmapやfilterを使えって事なんだけど。
関数型プログラミング言語を触ったことがないのでこれが関数的かどうかは知らないが、いちいち function とか return とか書くのは面倒くさいと思ったのと「関数の変形」や beyond.js 、boost::bind に影響を受けて、関数の変形を行うライブラリを作った。 まずは引数の束縛、及び入れ替え。「関数の変形」及び boost::bind にならって後々入力される引数を _n であらわすことにする。 function concat(a, b) { return "" + a + b; } concat.bind(_1, "a")("b"); // "ba" concat.bind("a", _1)("b"); // "ab" concat.bind(_2, _1)("a", "b"); // "ba" concat.bind(_1, _1)("a"); // "aa" 次に関
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く