Prototypeオブジェクト
【抜粋】 var Prototype = { Version: '1.4.0', ScriptFragment: '(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)', emptyFunction: function() {}, K: function(x) {return x} }
これ自体の機能はたいしたことありませんが、見慣れないと何をやっているのか分かりにくいです。この記法にはいくつかの前提があります。
- カスタムオブジェクト記法
以下の3つはほぼ同じ意味です。
【例】 var obj = {name1:value1, name:value2, ...};
【例】 var obj = new Object(); obj["name1"] = value1; obj["name2"] = value2; : :
【例】 var obj = new Object(); obj.name1 = value1; obj.name2 = value2; : :
- 無名関数
以下の二つは同じ意味です。
【例】 function name1(arg){ : : } var name2 = name1;
【例】 var name2 = function name1(arg){ : : }
name2でアクセスすることが決まっているなら、name1は不要です。*1
【例】 var name2 = function(arg){ : : }
このfunction(arg){}のように名前のない関数を無名関数といいます。
よって、以下のように動作します。
【例】 alert(Prototype.Version); //'1.4.0'と表示される。 alert(Prototype.ScriptFragment); //'(?:<script.*?>)(( // | // |.)*?)(?:<\/script>)'と表示される。(\nと\rは改行になる) alert(Prototype.emptyFunction()); //'undefined'と表示される。(何も返却しないため) alert(Prototype.K("test")); //'test'と表示される。