知っているとうれしいJavaScriptリテラル
2007-06-29
↑のサイトのコメント欄では少々舌足らずになってしまったので若干の補足を。
JavaScriptはCやJavaに文法が似ているように見えて、実は特有のリテラルが多いから、JavaScriptに不慣れな人にとってはわけがわからないコードになったりする。このエントリーでは、コード読む上で必要になりそうなリテラルを少し解説。
↑のサイトのコメント欄では少々舌足らずになってしまったので若干の補足を。
JavaScriptはCやJavaに文法が似ているように見えて、実は特有のリテラルが多いから、JavaScriptに不慣れな人にとってはわけがわからないコードになったりする。このエントリーでは、コード読む上で必要になりそうなリテラルを少し解説。
var Draggable = function(elm, opt) {
if (typeof elm == 'string') elm = document.getElementById(elm);
opt = opt || {};
elm.onmousedown = function(e) {
e = e || event;
var x = e.clientX - parseInt(elm.style.left);
var y = e.clientY - parseInt(elm.style.top);
document.onmousemove = function(e) {
e = e || event;
elm.style.left = (e.clientX - x) + 'px';
elm.style.top = (e.clientY - y) + 'px';
return false;
}
document.onmouseup = function() {
document.onmousemove = null;
document.onmouseup = null;
if (typeof opt.endeffect == 'function') opt.endeffect(elm);
return false;
}
if (typeof opt.starteffect == 'function') opt.starteffect(elm);
return false;
}
}たまたま調べたので忘れないようにメモ。
JavaScriptでは、↓のように匿名関数に名前をつけられるというのは有名な話。
var six = (function factorial(n) { return (n > 0) ? n * factorial(n - 1) : 1; })(3);JavaScriptは言語機構として継承の仕組みは備えていない。だから、cloneメソッド作ってみたり、Object.extendを使ってみたりといろんなことをするわけだが、今日のバイト中にふとシンプルな継承の仕組みを思いついた。
昨日の日経の夕刊に書いてあったのだが、今度のSafariはWindows上でも動くらしい。今までsafariの表示環境がなかった僕としては大助かりだ。
今現在は英語のパブリックベータ版があるのみだけど、10月には正式版が配布されるらしい。
以前書いた「XAMPP + PDT + ZendDebuggerでリモートデバッグ」というエントリーが比較的好評なようなので、もう少し丁寧に書いてみようかと思う。
pre要素やcode要素の中に書いたプログラムコードを、JavaScriptを使ってクライアントサイドで色分けしてくれるらしい。
function tpl($arg) {
static $vars = array();
if (is_array($arg)) {
$vars += $arg;
} else {
echo $vars[$arg];
}
}