angular 1x 方法随笔

作者: 反者道之动001 | 来源:发表于2017-07-23 11:44 被阅读13次

    构建大型应用的秘诀就是不构建大型应用,当你引入一个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--

    相关文章

      网友评论

        本文标题:angular 1x 方法随笔

        本文链接:https://www.haomeiwen.com/subject/vuwpkxtx.html