2009年10月28日

関数の呼び出し関数を調べる

以下のように設定しておくと関数の呼び出し元の関数を調べることが出来る。

function a(){
b();
}
function b(){
console.log(arguments.callee.caller)
alert("hoge")
}
a()


callerをどんどんたどるともっと呼び出しもとの関数をたどることができる。

function a(){
b();
}
function b(){
var currentFunction = arguments.callee.caller;
while (currentFunction) {
console.log(currentFunction.toString());
currentFunction = currentFunction.caller;
}
alert("hoge")
}
a()


参考サイト:IE上のJavaScriptで、関数の呼び出し元を取得する。
posted by ねこまんま at 17:08 | Comment(0) | TrackBack(0) | 関数/文法 | 更新情報をチェックする

2009年09月22日

配列の長さ

配列の長さを取ろうとしたら少しはまった。

var hoge = new Array
hoge[0] = "hoge0"
hoge[10] = "hoge10"

console.log(hoge.length)//11

2が帰ってきてほしかったけど11

たぶんメモリ領域が確保されてるから?

var i=0;
for(var key in hoge)i++
console.log(i)//2

仕方ないので、こんな感じで取得した見た
タグ:array length for in
posted by ねこまんま at 03:02 | Comment(0) | TrackBack(0) | 関数/文法 | 更新情報をチェックする

型判定を行うtypeof

typeof strもしくは typeof(str)で型判定を行うことができる

var i=0;
alert(typeof i); // number
 
var i="0";
alert(typeof i) // string
 
var i=[];
alert(typeof i) // object
 
var i={};
alert(typeof i) // object
 
var i=function(){};
alert(typeof i) // function
タグ:typeof
posted by ねこまんま at 02:32 | Comment(0) | TrackBack(0) | 関数/文法 | 更新情報をチェックする

function のapply

function内で他の関数をapplyすることによりその性質(?)を受け取ることができる。

function myFunc1() {
this.hoge = "ほげ"
}
function myFunc2() {
myFunc1.apply(this);
alert(this.hoge)
}
myFunc2()


myFunc2()を実行すると"ほげ"がアラートされる
タグ:apply
posted by ねこまんま at 00:16 | Comment(0) | TrackBack(0) | 関数/文法 | 更新情報をチェックする

2009年09月21日

functionのarguments

functionを実行した際にfunction内には暗黙的にarguments オブジェクト
が生成される。

arguments オブジェクトには関数の引数が格納されている。

function myFunc(arg1, arg2) {
alert(arguments[3]);
}
myFunc("arg1", "arg2", "arg3", "arg4");


参考:JavaScript関数の基本を知る
タグ:arguments
posted by ねこまんま at 23:53 | Comment(0) | TrackBack(0) | 関数/文法 | 更新情報をチェックする

2009年04月29日

insertBefore

parent.insertBefore( newChild , refChild )

のような感じでparentの子要素の、refChild の前にnewChildを追加する。

普通はこう書く

refChild.parentNode.insertBefore( newChild , refChild )

親要素は「refChild.parentNode」でおk

なんとなく気持ち悪い文法。


posted by ねこまんま at 03:16 | Comment(0) | TrackBack(0) | 関数/文法 | 更新情報をチェックする

2009年04月07日

execCommand

ブラウザに対して要求を送るコマンド。

例えばIEで背景画像のキャッシュを有効にする方法。
document.execCommand("BackgroundImageCache", false, true);

WYSIWYGエディタなんかを利用する際にも使われるらしい。
タグ:execCommand
posted by ねこまんま at 18:40 | Comment(0) | TrackBack(0) | 関数/文法 | 更新情報をチェックする