angular.bind(self, fn, args)

  • 作用:返回一个新的函数,绑定这个函数的this指向self
  • 参数:
    • self:新函数的上下文对象
    • fn:需要绑定的函数
    • args:传递给函数的参数
  • 返回值:this指向self的新函数

    var obj = {
    name: 'xxx',
    print: function (country) {
    console.log(this.name + ' is form ' + country);
    }
    }; var self = {
    name: 'yyy'
    }; var bindFn = angular.bind(self, obj.print, 'China');
    //var bindFn = angular.bind(self, obj.print, ['China']); obj.print('American'); //$ xxx is form American
    bindFn(); //$ yyy is form China

注意:bind会根据你的参数类型来决定调用call或apply,所以args可以是一个个数据,也可以是一个数组哦。

angular.copy(source, [destination])

  • 作用:对象的深拷贝
  • 参数:
    • source:源对象
    • destination:拷贝的对象
  • 返回值:拷贝的对象

    var obj = {
    name: 'xxx',
    age: 50
    }; var copyObj = angular.copy(obj); console.log(copyObj); //$ Object {name: "xxx", age: 50}

angular.equals(o1, o2)

  • 作用:正常比较和对象的深比较
  • 参数:
    • o1:比较的对象
    • o2:比较的对象
  • 返回值:boolean

    angular.equals(3, 3); //$ true
    angular.equals(NaN,NaN); //$ true
    angular.equals({name:'xxx'},{name:'xxx'}); //$ true
    angular.equals({name:'xxx'},{name:'yyy'}); //$ false

angular.extend(dst, src)

  • 作用:对象的拓展
  • 参数:
    • dst:拓展的对象
    • src:源对象
  • 返回值:拓展的对象

    var dst = {name: 'xxx', country: 'China'};
    var src = {name: 'yyy', age: 10}; angular.extend(dst, src); console.log(src); //$ Object {name: "yyy", age: 10}
    console.log(dst); //$ Object {name: "yyy", country: "China", age: 10}

angular.forEach(obj, iterator, [context])

  • 作用:对象的遍历
  • 参数:
    • obj:对象
    • iterator:迭代函数
    • context:迭代函数中上下文
  • 返回值:obj

    var obj = {name: 'xxx', country: 'China'};
    
    angular.forEach(obj, function (value, key) {
    console.log(key + ':' + value);
    }); //$ name:xxx
    //$ country:China var array = ['xxx', 'yyy']; angular.forEach(array, function (item, index) {
    console.log(index + ':' + item + ' form ' + this.country);
    }, obj); //$ 0:xxx form China
    //$ 1:yyy form China

angular.fromJson(string)

  • 作用:字符串转json对象
  • 参数:
    • string:字符串
  • 返回值:json对象

    var json = angular.fromJson('{"name":"xxx","age":34}');
    
    console.log(json); //$ Object {name: "xxx", age: 34}

angular.toJson(json,pretty)

  • 作用:json对象转字符串
  • 参数:
    • json:json
    • pretty:boolean number 控制字符串输出格式
  • 返回值:字符串

    angular.toJson({name:'xxx'});
    //$ "{"name":"xxx"}" angular.toJson({name:'xxx'},true);
    //$ "{
    //$ "name": "xxx"
    //$ }" angular.toJson({name:'xxx'},10);
    //$ "{
    //$ "name": "xxx"
    //$ }"

angular.identity(value)

  • 作用:返回这个函数的第一个参数
  • 参数:
    • value:参数
  • 返回值:第一个参数

    console.log(angular.identity('xxx','yyy')); //$ xxx

angular.isArray(value)

  • 作用:判断一个数据是否是数组
  • 参数:
    • value:数据
  • 返回值:boolean

    angular.isArray(3); //$ false
    angular.isArray([]); //$ true
    angular.isArray([1, 2, 3]); //$ true
    angular.isArray({name: 'xxx'}); //$ false

angular.isDate(value)

  • 作用:判断一个数据是否是Date类型
  • 参数:
    • value:数据
  • 返回值:boolean

    angular.isDate('2012-12-02'); //$ false
    angular.isDate(new Date()); //$ true

angular.isDefined(value)

  • 作用:判断一个数据是否是defined类型
  • 参数:
    • value:数据
  • 返回值:boolean

    angular.isDefined(undefined) //$ false
    angular.isDefined([]); //$ true

angular.isUndefined(value)

  • 作用:判断一个数据是否是undefined类型
  • 参数:
    • value:数据
  • 返回值:boolean

    angular.isUndefined(undefined) //$ true
    angular.isUndefined([]); //$ false

angular.isFunction(value)

  • 作用:判断一个数据是否是函数
  • 参数:
    • value:数据
  • 返回值:boolean

    angular.isFunction(function(){}); //$ true
    angular.isFunction(3); //$ false

angular.isNumber(value)

  • 作用:判断一个数据是否是Number类型
  • 参数:
    • value:数据
  • 返回值:boolean

    angular.isNumber(4); //$ true
    angular.isNumber('xxx'); //$ false
    angular.isNumber(new Number(4)); //$ false
    angular.isNumber(Number(4)); //$ true

angular.isObject(value)

  • 作用:判断一个数据是否是对象
  • 参数:
    • value:数据
  • 返回值:boolean

    angular.isObject('xxx'); //$ false
    angular.isObject(null); //$ false
    angular.isObject([]); //$ true
    angular.isObject(function(){}); //$ false
    angular.isObject({name:'xxx'}); //$ true

angular.isString(value)

  • 作用:判断一个数据是否是字符串
  • 参数:
    • value:数据
  • 返回值:boolean

    angular.isString(4); //$ false
    angular.isString('xxx'); //$ true
    angular.isString(new String('xxx')); //$ false
    angular.isString(String('xxx')); //$ true

angular.lowercase(string)

  • 作用:将字符串大写字母变小写
  • 参数:
    • string:字符串
  • 返回值:改变后的新字符串

    var newString = angular.lowercase('XXyyZZ');
    console.log(newString); //$ xxyyzz

angular.uppercase(string)

  • 作用:将字符串小写字母变大写
  • 参数:
    • string:字符串
  • 返回值:改变后的新字符串

    var newString = angular.uppercase('XXyyZZ');
    console.log(newString); //$ XXYYZZ

angular.noop()

  • 作用:空函数

    var flag = false;
    flag ? console.log('xxx') : angular.noop();

angularjs学习笔记—工具方法的更多相关文章

  1. vue.js 源代码学习笔记 ----- 工具方法 env

    /* @flow */ /* globals MutationObserver */ import { noop } from 'shared/util' // can we use __proto_ ...

  2. vue.js 源代码学习笔记 ----- 工具方法 option

    /* @flow */ import Vue from '../instance/index' import config from '../config' import { warn } from ...

  3. vue.js 源代码学习笔记 ----- 工具方法 share

    /* @flow */ /** * Convert a value to a string that is actually rendered. { .. } [ .. ] 2 => '' */ ...

  4. vue.js 源代码学习笔记 ----- 工具方法 perf

    import { inBrowser } from './env' export let mark export let measure if (process.env.NODE_ENV !== 'p ...

  5. vue.js 源代码学习笔记 ----- 工具方法 error

    import config from '../config' import { warn } from './debug' import { inBrowser } from './env' // 这 ...

  6. vue.js 源代码学习笔记 ----- 工具方法 props

    /* @flow */ import { hasOwn, isObject, isPlainObject, capitalize, hyphenate } from 'shared/util' imp ...

  7. vue.js 源代码学习笔记 ----- 工具方法 lang

    /* @flow */ // Object.freeze 使得这个对象不能增加属性, 修改属性, 这样就保证了这个对象在任何时候都是空的 export const emptyObject = Obje ...

  8. vue.js 源代码学习笔记 ----- 工具方法 debug

    import config from '../config' import { noop } from 'shared/util' let warn = noop let tip = noop let ...

  9. AngularJS学习笔记2——AngularJS的初始化

    本文主要介绍AngularJS的自动初始化以及在必要的适合如何手动初始化. Angular <script> Tag 下面通过一小段代码来介绍推荐的自动初始化过程: <!doctyp ...

随机推荐

  1. RAID的简单介绍

    该文章全部复制转载于:http://blog.jobbole.com/83808/,只为做笔记供自己查看 简介 RAID是一个我们经常能见到的名词.但却因为很少能在实际环境中体验,所以很难对其原理 能 ...

  2. 【BZOJ 1177】【APIO 2009】Oil

    http://www.lydsy.com/JudgeOnline/problem.php?id=1177 前缀和优化,时间复杂度$O(nm)$ 因为数据不全,快速读入会导致RE,切记! #includ ...

  3. 安全框架 SpringSecurity 和 Shiro 对比

    突然再次很想理一下权限的事,但是实在不知道实际情况选哪个框架好,现在整理下网上的资料,做一下对比. 1.Spring-security 对spring 结合较好,如果项目用的springmvc ,使用 ...

  4. 控件(进度类): RangeBase, Slider, ProgressBar, ProgressRing

    1.RangeBase(基类) 的示例Controls/ProgressControl/RangeBaseDemo.xaml <Page x:Class="Windows10.Cont ...

  5. 【POJ 3062】Party(2-SAT、tarjan)

    2-SAT的入门题. a,a',b,b'分别表示两对夫妇,如果a,b有矛盾,那么a要来,就只能来b',b要来,就只能来a'.于是建了两条边(a,b'),(b,a'). 用tarjan强连通分量缩点染色 ...

  6. 让script的type属性等于text/html

    type属性为text/html的时候,<script>片断中定义一个被JS调用的代码,代码不会在页面上显示 <script id="commentTemplate&quo ...

  7. iOS进度条显示

    一.实现下载文件进度控制 1.代码示例 1 #import "YYViewController.h" 2 3 @interface YYViewController () 4 @p ...

  8. python 冒泡排序

    冒泡排序: 相邻的两个数字先进行比较,也就是li[0]和li[1]进行比较,如果不是大于的关系,就继续依次进行li[1]和li[2]比较,进行交换然后每一次扫描得到的新列表如下: li = [11,2 ...

  9. Oracle触发器实例(网搜)

    触发器使用教程和命名规范 目  录触发器使用教程和命名规范 11,触发器简介 12,触发器示例 23,触发器语法和功能 34,例一:行级触发器之一 45,例二:行级触发器之二 46,例三:INSTEA ...

  10. 【bzoj3572】 世界树

    http://www.lydsy.com/JudgeOnline/problem.php?id=3572 (题目链接) 题意 给出一棵n个节点的树,q次询问,每次给出k个关键点.规定对于树上每个节点归 ...