1.修改this指向
封装函数 f,使 f 的 this 指向指定的对象
输入:无
输出:无
function bindThis(f, oTarget) {
//考察js中的上下文调用的三种方法,call/apply/bind
//return function(){
// return f.apply(oTarget,arguments);
// }
return f.bind(oTarget); //克隆一个新的函数
}
2.获取 url 中的参数
1)指定参数名称,返回该参数的值 或者 空字符串
2)不指定参数名称,返回全部的参数对象 或者 {}
3)如果存在多个同名参数,则返回数组
输入:http://www.nowcoder.com?key=1&key=2&key=3&test=4#hehe
输出:[1, 2, 3]
function getUrlParam(sUrl, sKey) {
var param = sUrl.split('#')[0].split('?')[1];
if(sKey){ //存在指定字符串名称
var strs = param.split('&');
var arrs = new Array(); //如果存在多个同名参数,则返回数组
for(var i = 0, len = strs.length;i<len;i++){
var temp = strs[i].split('=');
if(temp[0] == sKey){
arrs.push(temp[1]);
}
}
if(arrs.length ==1){
return arrs[0];
}else if(arrs.length == 0){
return "";
}else{
return arrs;
}
}else{ //不存在参数名称
if(param == undefined || param == ''){
return {};
}else{
var strs = param.split('&');
var obj = new Object(); //返回全部的参数对象
for(var i = 0,len = strs.length;i<len;i++){
var temp = strs[i].split('=');
if(!(temp[0] in obj)){
obj[temp[0]]=[];
}
obj[temp[0]].push(temp[1]);
}
return obj;
}
}
}
function getUrlParam(sUrl,sKey){
var