ソースを読んで Mootools を学ぼうとしていますが、関数のローカル コピーを作成する理由がわかりません。
var Function = this.Function;
しかし、配列、数値、および文字列のローカル コピーを作成して同じことを行わないのはなぜですか。
Function.from = function(item){
return (typeOf(item) == 'function') ? item : function(){
return item;
};
};
Array.from = function(item){
if (item == null) return [];
return (Type.isEnumerable(item) && typeof item != 'string') ? (typeOf(item) == 'array') ? item : slice.call(item) : [item];
};
Number.from = function(item){
var number = parseFloat(item);
return isFinite(number) ? number : null;
};
String.from = function(item){
return item + '';
};
また、149行目で関数がローカルプロトタイププロパティに格納されている実装関数を呼び出す方法がわかりませんか?
Function.implement({
hide: function(){
this.$hidden = true;
return this;
},
protect: function(){
this.$protected = true;
return this;
}
});
Function は関数であるため、その内部 [[prototype]] は Function.prototype ですか?