JavaScript常用小技巧小結
3530 ワード
前言
最近触れたJavaScript文法飴をまとめてみます.
砂糖の一個について詳しい説明と例がありますので、これ以上話しません.
正しいタイプの検査
最近触れたJavaScript文法飴をまとめてみます.
砂糖の一個について詳しい説明と例がありますので、これ以上話しません.
正しいタイプの検査
/*
* @function:
*
* ,
* @params:
* obj ,
* config , ,
* @return:
* true ,false
* @examples:
* typeCheck("str"); //return true
* typeCheck({},{"[object Array]": 1}); //return false
*/
function typeCheck(obj,config){
var hasOp = Object.prototype.hasOwnProperty,
toStr = Object.prototype.toString,
_config = config || {
"[object Object]": 1,
"[object Array]": 1,
"[object Regex]": 1,
"[object String]": 1,
"[object Number]": 1,
"[object Boolean]": 1,
"[object Function]": 1,
"[object Undefined]": 1,
"[object Null]": 1
};
return hasOp.call(_config,toStr.call(obj));
}
優雅な原型追加方法
/*
* @description:
*
*
*/
if(typeof Function.prototype.method !== "function") {
Function.prototype.method = function(name,fn){
this.prototype[name] = fn;
return this;
};
}
/*
*
*/
// “ ”
function testFn(){
}
//
testFn.method("add",function(a,b){
return a + b;
}).method("sub",function(a,b){
return a - b;
});
//
var testObj = new testFn();
//
testObj.add(1,5); //return 6
testObj.sub(7,2); //return 5
ショートカットは名前空間を作成します.
/*
* @function:
*
* @params:
* ex , :NSROOT.service.impl
*
* @return:
* Object, Object
* @others:
* NSROOT ,
*/
var NSROOT = NSROOT || {};
NSROOT.namespace = function(ex){
var _ex = ex || "",
nsArray = _ex.split("."),
parentNode = NSROOT,
_s = "",
i = 0;
//
if(nsArray[0] !== "NSROOT"){
throw(" !");
}
// root
nsArray = nsArray.slice(1);
for(i = 0;i _s = nsArray[i];
if(parentNode[_s] === undefined){
parentNode[_s] = {};
}
parentNode = parentNode[_s];
}
return parentNode;
};
/*
*
*/
//
var impl = NSROOT.namespace("NSROOT.service.impl");
alert(impl === NSROOT.service.impl); //return true
// ,
NSROOT.namespace("NSROOT.service.impl");
alert(impl === NSROOT.service.impl); //return true