javaScript我爱编程

angular 1x 方法随笔

2017-07-23  本文已影响13人  反者道之动001

构建大型应用的秘诀就是不构建大型应用,当你引入一个UI库,js库,或者一个框架的时候,你应该想到,能不能轻易的替换掉。所有的工具都是为了方便而存在,而不是绑定。

angular.toJson

Object转化Json 功能等同于 JSON.stringify

angular.fromJson

JsonObject 功能等同于JSON.parse
讲真的,这个命名好不清晰,且原生的已经具备了,以后的新的框架再也不会出现这种东西

angular.forEach

遍历,第一个参数是需要加工的对象(或者数组),第二个是函数
函数接受三个参数,参数跟原生的forEach并无区别,(原生不支持obj,只能对数组处理)
不会迭代继承的属性(用hasOwnProperty筛选。)

angular.forEach(obj,function(e,index,self){
    console.log(e,index,self) // 键值,属性名,传入的对象
})
它的源码

angular.extend

他执行了 对象扩展,深拷贝,混入(mixin)。。。叫法挺多的
但是混入一个词比较贴切吧,You-Dont-Know-JS是这样形容的:像蛋糕上面涂奶油一样
第一个参数是扩展对象,后面的是n多混入对象

var data = {name: 0}
angular.extend(data,{p:0},{k: 0})
Object {name: 0, p: 0, k: 0}

angular.copy

这个是深拷贝,楼上的那个代码是混入,但是还是很多人叫深拷贝。
接受一个对象参数,返回对象
功能单纯
深入拷贝,递归实现,可对属性的对象再次深拷贝,看代码

var c = {name: 0}
,a = { name: c }
,b = angular.copy(a)

c.name = 'no number 0'
console.log(b.name.name)

angular.equals

对两个值比较,if 相同 true , else: false
支持类型,正则,表达式
NaN 也会通过,里面有这样一段源码:

if (o1 !== o1 && o2 !== o2) return true; // NaN === NaN

angular.element

将字符串,或者Dom转化Jq元素


--OK--

推荐一本书:
https://github.com/getify/You-Dont-Know-JS

--END--

上一篇下一篇

猜你喜欢

热点阅读