方法分类 算是一个技术点 这个能解决 如果编写一个类的时候 里面的方法很多 就会很难维护 那么怎么处理能让代码更好阅读 更好的维护那?

栗子:  JQ里有很判断方法比如 isObject .isArray isString 等等

NjQuery.isString=function(str)
{
return typeof str=="string";
}
NjQuery.isHtml=function(str)
{
return str.charAt(0) =="<"&&str.charAt(str.length-1)==">"
&& str.length>=3;
}
NjQuery.trim=function(str)
{
if(!NjQuery.isString(str))
{
return str;
}
if(str.trim)
{
return str.trim();
}else
{
//对不支持trim的 用正则表达式
//^代表前 $代表后 \s 是空格 |是或 g是全局 不加g找到一个就停止了
return str.replace(/^\s+|\s+$/g,"");
}
}

NjQuery.isObject =function(str)
{
return typeof str=="object";
}
NjQuery.isWindow=function(str)
{
return str==window;
}
NjQuery.isArray=function(str)
{
if(NjQuery.isObject(str)&&!NjQuery.isWindow(str) && length in str)
{
return true;
} else{ return false;}

}

就会长 很难维护 那么Jq里就有一个很简洁的方法 

栗子:

function Jq()
{

}
//类方法
Jq.extend=function(obj)
{
//这里的this 就是Jq类 这行的代码就是给Jq 加上 Dom 方法
for (var key in obj) {
this[key] = obj[key];
}


}

//调用类方法 传入对象
Jq.extend({
Dom:function()
{
console.log("dom");
}
});

//调用对象
Jq.Dom();

// 这样 通过extend 类方法 可以随时扩展Jq的方法 现在JQ有 text 和dom 俩个方法了
Jq.extend({
text:function()
{
console.log("text");
}
})

Jq.text();
//删除函数
delete Jq.text;
// Jq.text(); 报错
Jq.Dom();

我觉得 这是一个很好的机制 让代码很规整 修改后的代码

NjQuery.extend=NjQuery.prototype.extend=function( obj)
{
for (var key in obj) {
this[key] = obj[key];
}
}
NjQuery.extend({

isString:function(str)
{
return typeof str=="string";
},
isHtml:function(str)
{
return str.charAt(0) =="<"&&str.charAt(str.length-1)==">"
&& str.length>=3;
},
trim:function(str)
{
if(!NjQuery.isString(str))
{
return str;
}
if(str.trim)
{
return str.trim();
}else
{
//对不支持trim的 用正则表达式
//^代表前 $代表后 \s 是空格 |是或 g是全局 不加g找到一个就停止了
return str.replace(/^\s+|\s+$/g,"");
}
},

isObject :function(str)
{
return typeof str=="object";
},
isWindow:function(str)
{
return str==window;
},
isArray:function(str)
{
if(NjQuery.isObject(str)&&!NjQuery.isWindow(str) && length in str)
{
return true;
} else{ return false;}

}
})