angular.bind
返回一个调用self的函数fn(self代表fn里的this).可以给fn提供参数args(*).这个功能也被称为局部操作,以区别功能。
格式:angular.bind(self,fn,args);
self:object 对象; fn的上下文对象,在fn中可以用this调用
fn:function; 绑定的方法
args:传入fn的参数
使用代码:
var obj = { name: "Any" };
var fn = function (Adj) {
console.log(this.name + "is a boy!!! And he is " + Adj + " !!!");
};
var f = angular.bind(obj, fn, "handsome");
f();//Any is a boy!!! And he is handsome!!!
var t = angular.bind(obj, fn);
t("ugly");// Any is a boy!!! And he is ugly!!!
bind顾名思义绑定的意思,那么假如我们要把A绑到B上,那么必须又有绑定的东西和被绑定的东西。这里需要的就一个对象和一个函数。那么怎么绑?本兽的理解是把对象“绑”到函数的this上去执行,这时候fn的this就等于obj了,至于第三个参数,可有可无,看需求,如果函数需要传入参数,那么我们可以把angular.bind的第三个参数放上去,这就是传入fn函数的参数了。
案例中第一种写法是定义绑定的时候就把fn所需的参数传进去了,调用的时候直接用,而案例中第二种写法是先绑定,在调用执行的时候再给fn传参,效果是一样的...
angular.copy
描述:
复制一个对象或者一个数组(好吧,万物皆对象,数组也是一个对象)。
如果省略了destination,一个新的对象或数组将会被创建出来;
如果提供了destination,则source对象中的所有元素和属性都会被复制到destination中;
如果source不是对象或数组(例如是null或undefined), 则返回source;
如果source和destination类型不一致,则会抛出异常。
注意:这个是单纯复制覆盖,不是类似继承
使用方法:
angular.copy(source, [destination]);
source * 任何类型 也可以是null或者undefined
destination object||array copy去的目的地. 可以省略, 如果不省略, 其必须和source是同类
angular.equals
描述:
比较两个值或者两个对象是不是相等。还支持值的类型,正则表达式和数组的比较。两个值或对象被认为是相等的前提条件是以下的情况至少能满足一项:
- 两个值或者对象能通过=== (恒等) 的比较
- 两个值或者对象是同样类型,并且他们的属性都能通过angular.equals的比较
- 两个值都是NaN
- 两个值代表两个同样的正则表达式,例如angular.equals('/abc/', '/abc/')
使用方法:
angular.equals(o1, o2)
angular.forEach
描述:
循环对obj对象的每个元素调用iterator, obj对象可以是一个Object或一个Array. Iterator函数调用方法: iterator(value, key), 其中obj是被迭代对象,key是obj的property key或者是数组的index,value就是相应的值.context
使用方法:
angular.forEach(obj, iterator, [context])
参数:
参数名称 | 参数类型 | 描述 |
---|---|---|
obj | Object||array | 被迭代的对象 |
iterator | function | 迭代函数 |
context (optional) | Object | Object to become context (this) for the iterator function. |
返回值:
对obj的引用
var values = {name: 'misko', gender: 'male'}; var log = []; angular.forEach(values, function(value, key) { this.push(key + ': ' + value); }, log);
$scope.dd = log.join(",");
angular.fromJson
描述:
把Json字符串转为对象
使用方法:
angular.fromJson(json);
参数:
参数名称 | 参数类型 | 描述 |
---|---|---|
json | string | JSON 字符串 |
返回值:
对象, 数组, 字符串 或者是一个数字
- <!DOCTYPE html>
- <html ng-app="App">
- <head>
- <meta charset="UTF-8">
- <title></title>
- <script src="../js/angular.js"></script>
- <script type="text/javascript">
- angular.module("App", [])
- .controller("parseController", function($scope)
- {
- $scope.parse = function()
- {
- var json = '{"name":"liSi", "password":"321"}';
- var jsonArr = '[{"name":"zhangSan", "password":"123"},{"name":"liSi", "password":"321"}]';
- var obj = angular.fromJson(json);
- console.log(obj.name);
- var objArr = angular.fromJson(jsonArr);
- console.log(objArr[0].name);
- console.log(objArr[1].password);
- }
- });
- </script>
- </head>
- <body>
- <div ng-controller="parseController">
- <button ng-click="parse()">点击我!</button>
- </div>
- </body>
- </html>
- var obj =
- {
- name:"liSi", password:"321"
- }
- var str = angular.toJson(obj, true);
- console.log(str);
angular.identity
函数返回本身的第一个参数。这个函数一般用于函数风格。
格式:angular.identity()
使用代码:
(function () {
angular.module("Demo", [])
.controller("testCtrl", testCtrl);
function testCtrl() {
var getResult = function (fn, val) {
return (fn || angular.identity)(val);
};
var result = getResult(function (n) { return n * 2; }, 3); // result = 6
var null_result = getResult(null, 3);// null_result = 3
var undefined_result = getResult(undefined, 3);// undefined _result = 3
};
}())
angular.noop
一个不执行任何操作的空函数。这个函数一般用于函数风格。
格式:angular.noop();
贴代码:
(function () {
angular.module("Demo", [])
.controller("testCtrl", testCtrl);
function testCtrl() {
var _console = function (v) {
return v * 2;
};
var getResult = function (fn, val) {
return (fn || angular.noop)(val);
};
var firstResult = getResult(_console, 3);//6
var secondResult = getResult(null, 3);//undefined
var thirdResult = getResult(undefined, 3);// undefined
};
}())