技術メモ帳 このページをアンテナに追加 RSSフィード

2006-08-11

[]Javascript Tricks 23:43 Javascript Tricksを含むブックマーク Javascript Tricksのブックマークコメント

おもしろい。コメント欄が。

http://alexander.kirk.at/2006/08/09/javascript-tricks-and-good-programming-style/


デフォルト引数 を実現する方法。

Javascriptにもあったのね、と思った。

function func(val) {
  val = val || デフォルト値;

  // val を使う処理。
}

パラメータヒント

たとえば、

二つの引数を受け取る関数 show_page 関数があったとする。

function show_page( header, footer ) {
  alert( header + footer );
}

で、普通に引数を二個渡しても良いんだけど、

こうするとわかりやすいよ、というもの。

show_page( header = 'hoge', footer = 'foobar' );

実際には、Javascript の特別なシンタックスではなく、

ただ単に、以下のような事をしているだけだと思われる。

var header = 'hoge';
var footer = 'foobar';
show_page( header, footer );

ただ、同じ名前の変数が既に存在していた場合、

その値を上書きしてしまう。

これはリンク先にも書いてあった。


さらに、コメント欄でこういうやり方をするべきだというのがあった。

show_page( {header: 'hoge', footer: 'foobar'} );

最近流行の script.acul.ous とかだとこんな感じだなぁとふと思った。

brazilbrazil 2006/08/13 23:32 こんにちは、ブログおもしろいです、勉強させていただいてます。
僕も、watchで書いてみました、けど、上手く動かないっす。
詳しくは調べてないですが、watchのトリガ関数でリターンするまで値が変わらないのと、そのタイミングが短すぎるのが原因かなぁと思いました。
setTimeoutを使えば動きました。

window.addEventListener(”load”, function(e) {
with(unsafeWindow){
Control.toggle_fullscreen();

subs.watch(”loaded”, function(prop, oldVal, newVal){
if(newVal){
setTimeout(function(){Control.read_head_subs()}, 50);
subs.unwatch(”loaded”);
}
return newVal;
});
}
}, false);

lurkerlurker 2006/08/14 23:52 >こんにちは、ブログおもしろいです、勉強させていただいてます。
いえいえ、そんなことはございません。
むしろ、ボクは brazil さんの
ブックマークを大変参考にさせていただいております。


>watchのトリガ関数でリターンするまで
>値が変わらないのと、そのタイミングが短すぎるのが原因かなぁと思いました。
わざわざ調査をありがとうございます。
今ちょっと時間がなくて確認が出来ず本当に申し訳ないのですが
原因、解決策 を発見し次第、なんらかの output をしてみます。

>Control.read_head_subs()
まさにベストなメソッドがあったのですね。

brazilbrazil 2006/08/15 02:13 いやいやいやいや、私のことは気にせんでください!
気が向いたら調査して、飽きたらほっぽっちゃえ!
じゃっ!

lurkerlurker 2006/08/15 08:12 仕事が楽になったらたぶんできます!!

brazilbrazil 2006/08/26 02:38 with(unsafeWindow){
register_hook(”after_subs_load”, function(){
Control.read_head_subs();
// Keybind.sendKey(”s”);
});
}
最初のフィードに移動するなら、これが簡単なのかもしれません。

lurkerlurker 2006/08/26 09:41 おお、すばらしいですね。
修正しときます。