AngularJS的类型判定优先以typeOf来进行判定,然后用toString.call(..)的方式判定,如下:
function isArray(value) {
return toString.call(value) === '[object Array]';
}
AngularJS还有一种编程方式,
var what = (function(){
var TrueOrFalse = ???//判定条件
if(TrueOrFalse){
return function(args){//TODO:}
}else{
return function(args){//TODO:}
}
})();
这种编程方式,特别适合用来对js运行容器的不同特性进行针对性编程, 源码例子:
var trim = (function() {
if (!String.prototype.trim) {
return function(value) {
return isString(value) ? value.replace(/^\s\s*/, '').replace(/\s\s*$/, '') : value;
};
}
return function(value) {
return isString(value) ? value.trim() : value;
};
})();
//google编译器里运行 :trim
//返回:
// function (value) {
// return isString(value) ? value.trim() : value;
// }