AngularJS-源码阅读(二)

    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;
//  }




你可能感兴趣的:(AngularJS-源码阅读(二))