第一个基础文件 名字是base.js
2012-01-13
(function(window,undefined){
var _toString = {}.toString,
_is,
_writeScript,
_listUrl,
alfred = {
author : "alfred",
version : 1.01,
global : this,
doc : this.document,
reset : function(it){this.global[it]=alfred;},
log : function(){if(window.console && console.log){return console.log(arguments)}},
isNumber : function(it){return _is(it,"Number")},
isString : function(it){return _is(it,"String")},
isFunction : function(it){return _is(it,"Function")},
isObject : function(it){return _is(it,"Object")},
isArray : function(it){return _is(it,"Array")},
isBoolean : function(it){return typeof it ==='boolean'},
scriptMap : {
method_url : {},// method --> url < method : url > < 1 : 1 >
url_method : {},// url --> method < url : [method,method] > < 1 : n >
visited : {},
writted : {},
wait_write:[]
},
require : function(method){
var m2u = this.scriptMap.method_url,
u2m = this.scriptMap.url_method,
r;
if (!this.scriptMap.visited[m2u[method][0]] && !this.scriptMap.writted[m2u[method][0]]) {
//haven't be visited or write
this.scriptMap.visited[m2u[method][0]] = true;
//use an beautiful code in here
for(; m2u[method][1].length &&(r=m2u[method][1].shift());)
{
require(r);
}
_listUrl();
};
},
setMethod : function(url,method,rely){
if (url && method && !this.scriptMap.url_method[url]){
this.scriptMap.url_method[url] = method;
for (var i = method.length - 1; i >= 0; i--) {
this.scriptMap.method_url[method[i]] = {"0" : url, "1" : rely};
}
}
},
extend : function(){
var deep = false,
len,
options, name, src, copy, copyIsArray, clone,
target = arguments[0] || {},
i = 1;
len = arguments.length;
if (!len)
{
return this;
}
if(alfred.isBoolean(target))
{
deep = arguments[0];
to = arguments[1];
i = 2;
}
if (!(alfred.isObject(target) || alfred.isFunction(target))) {
target = {};
}
if (len = i)
{
to = this;
--i;
}
for (;i<len;i++) {
if ((options=arguments[i])!==null)
{
for (name in options) {
copy = options[name];
src = target[name];
if (copy===target) {continue}
if (deep && copy && (alfred.isObject(copy) || (copyIsArray = alfred.isArray(copy))))
{
if (copyIsArray)
{
copyIsArray = false;
clone = src && alfred.isArray(src) ? src : [];
}
else
{
clone = src && alfred.isObject(src) ? src : [];
}
target[ name ] = alfred.extend( deep, clone, copy );
}
else if ( copy !== undefined )
{
target[name] = copy;
}
};
};
};
}
};
_is = function(it,type){
return _toString.call(it).toLowerCase()==="[object "+type.toLowerCase()+"]";
};
_listUrl = function(){
var l = alfred.scriptMap.visited,i;
for(i in l){
alfred.scriptMap.wait_write.push(i);
}
alfred.scriptMap.wait_write.reverse();
_writeScript();
};
_writeScript = function(){
var head = document.getElementsByTagName("head").item(0);
for (var i;alfred.scriptMap.wait_write.length&&(i=alfred.scriptMap.wait_write.shift());) {
var script = document.createElement("script"),
url = i || "";
script.setAttribute("async",true);
script.setAttribute("type","text/javascript");
script.setAttribute("src",url);
head.appendChild(script);
alfred.scriptMap.writted[url] = true;
};
};
$ = alfred;
window.$ = $;
})(window)
base.js
This is the first version for my javascript lean.
I need learn more .
开始 到结束 只是那么个过程。结束了 就忘记吧。
分类:
javascript learn
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述