angularjs学习笔记—工具方法
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学习笔记—工具方法的更多相关文章
- vue.js 源代码学习笔记 ----- 工具方法 env
/* @flow */ /* globals MutationObserver */ import { noop } from 'shared/util' // can we use __proto_ ...
- vue.js 源代码学习笔记 ----- 工具方法 option
/* @flow */ import Vue from '../instance/index' import config from '../config' import { warn } from ...
- vue.js 源代码学习笔记 ----- 工具方法 share
/* @flow */ /** * Convert a value to a string that is actually rendered. { .. } [ .. ] 2 => '' */ ...
- vue.js 源代码学习笔记 ----- 工具方法 perf
import { inBrowser } from './env' export let mark export let measure if (process.env.NODE_ENV !== 'p ...
- vue.js 源代码学习笔记 ----- 工具方法 error
import config from '../config' import { warn } from './debug' import { inBrowser } from './env' // 这 ...
- vue.js 源代码学习笔记 ----- 工具方法 props
/* @flow */ import { hasOwn, isObject, isPlainObject, capitalize, hyphenate } from 'shared/util' imp ...
- vue.js 源代码学习笔记 ----- 工具方法 lang
/* @flow */ // Object.freeze 使得这个对象不能增加属性, 修改属性, 这样就保证了这个对象在任何时候都是空的 export const emptyObject = Obje ...
- vue.js 源代码学习笔记 ----- 工具方法 debug
import config from '../config' import { noop } from 'shared/util' let warn = noop let tip = noop let ...
- AngularJS学习笔记2——AngularJS的初始化
本文主要介绍AngularJS的自动初始化以及在必要的适合如何手动初始化. Angular <script> Tag 下面通过一小段代码来介绍推荐的自动初始化过程: <!doctyp ...
随机推荐
- 让Windows新建UTF-8编码的文本文件
一直以来都是使用[右键->新建->文本文件]的方法来新建一个代码文件,但是存在一个问题新建的文件是大小为0字节的.对于大小为0字节的文件文件,文本编辑器一般都使用MBCS编码,而MBCS编 ...
- poj2186 强连通缩点
Popular Cows Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 29773 Accepted: 12080 De ...
- bootstrap 2.3版与3.0版的使用区别
bootstrap 2.3版与3.0版的使用区别 bootstrap已经推出了3.0的新版,看起来2.3.x版本也不会再更新了.那么bootstrap 2.3版与3.0版的区别在哪里呢?下面我们就来介 ...
- dede使用方法----实现英文版的搜索功能
搜索功能在网站中是最常见的一个功能了.我们在用dede做双语网站的时候,默认的会有中文版的搜索功能.但是怎么添加一个英文版的搜索功能.各位看官,方法如下: 1.复制plus目录下的serach.php ...
- java中i=i++字节码分析
原文出处: Ticmy 1 2 int i = 0; i = i++; 结果还是0为什么? 程序的执行顺序是这样的:因为++在后面,所以先使用i,"使用"的含义就是i++这个表达式 ...
- DIRECTORY_SEPARATOR:PHP 系统分隔符常量
今天在nginx部署项目,在浏览器输入http://127.0.0.2/index.php/system/category/?action=list 老是提示error nginx配置没有问题,下了其 ...
- 【BZOJ-3709】Bohater 贪心
3709: [PA2014]Bohater Time Limit: 5 Sec Memory Limit: 128 MBSec Special JudgeSubmit: 835 Solved: ...
- 【poj1061】 青蛙的约会
http://poj.org/problem?id=1061 (题目链接) 题意 两只青蛙在周长为L的球上沿一条直线向一个方向跳,每只每次分别跳m,n米,它们一开始分别在X,Y处,问跳几次两青蛙可以在 ...
- SQL Server附加数据库时失败,提示:“未重新生成日志,因为有不止一个日志文件”
这个只能是试一下的方法,但不一定能成功,可以尝试如下几个方法: 1.登录远程桌面,然后以.登录SQL Server,并以Windows身份登录,然后再附加数据库时把日志文件删除. 2.试下这个脚本: ...
- Npoi实现Excel绘制功能
使用Npoi操作Excel,是我一直很喜欢的一种方式. 说简单也简单,但是封装好重用性,易用性,也稍稍费了些时间.在这里做个记录,免得以后遗忘. 首先说一下需求,需求有两点 1.新建Excel,并下载 ...