壹 ❀ 引 如果有人问,在angularjs中修改模型数据为何视图会同步更新呢,我想大多数人一定会回答脏检查(Dirty Checking)相关概念.没错,在angularjs中作用域(scope)作为链接控制器(controller)与视图(view)之间的桥梁,除了绑定数据监听事件外,一旦有数据发生改变,scope还兼顾了脏检测更新视图的职责,这是我们宏观的理解. 这就引发了一系列的问题,以点击事件为例,为什么在angularjs中用原生click事件达不到更新视图的效果?ng-click…
$digest和$apply 在Angular中,有$apply和$digest两个函数,我们刚才是通过$digest来让这个数据应用到界面上.但这个时候,也可以不用$digest,而是使用$apply,效果是一样的,那么,它们的差异是什么呢? 最直接的差异是,$apply可以带参数,它可以接受一个函数,然后在应用数据之后,调用这个函数.除此之外,还有别的区别吗? 在简单的数据模型中,这两者没有本质差别,但是当有层次结构的时候,就不一样了.考虑到有两层作用域,我们可以在父作用域上调用这两个函数,…
欢迎大家指导与讨论 : ) 前言 Angular会拓展这个标准的浏览器流程,创建一个Angular上下文.这个Angular上下文指的是运行在Angular事件循环内的特定代码,该Angular事件循环被称作为$digest循环.$digest循环有两个组成部分,分别是$watch列表和$evalAsync列表. 例如,当 <input> 标签绑定了$scope.name属性,为了更新这个视图,Angular需要追踪变化.它是通过给$watch列表添加一个监控函数做到这一点.而$watch列表…
一.call和apply的说明 1.call,apply都属于Function.prototype的一个方法,它是JavaScript引擎内在实现的,因为属于Function.prototype,所以每个Function对象实例(就是每个方法)都有call,apply属性.既然作为方法的属性,那它们的使用就当然是针对方法的了,这两个方法是容易混淆的,因为它们的作用一样,只是使用方式不同. 2.语法:foo.call(this, arg1,arg2,arg3) == foo.apply(this,…
一.方法定义: apply:调用一个对象的一个方法,用另一个对象替换当前对象.例如:B.apply(A, arguments);即A对象应用B对象的方法. call:调用一个对象的一个方法,用另一个对象替换当前对象.例如:B.call(A, args1,args2);即A对象调用B对象的方法. 上面的定义看一遍是很懵的,不过自己遍写例子遍反复读的时候,会有种拨开云雾的感觉. call 与 apply 的相同点: 方法的含义是一样的,即方法功能是一样的: 第一个参数的作用是一样的: call 与…
angularjs中provider,factory,service的区别和用法 都能提供service,但是又有差别 service 第一次被注入时实例化,只实例化一次,整个应用的生命周期中是个单例模式,可以用来在controller之间传递数据 //使用new关键字实例化,所以直接使用this定义service //不知道为啥就看看js中的this怎么玩的 .service('myService', ['', function() { this.getName = function() {…
转自:http://uule.iteye.com/blog/1158829 JS中的call()和apply()方法 博客分类: JS   1.方法定义 call方法: 语法:call([thisObj[,arg1[, arg2[,   [,.argN]]]]]) 定义:调用一个对象的一个方法,以另一个对象替换当前对象. 说明: call 方法可以用来代替另一个对象调用一个方法.call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象. 如果没有提供 thisO…
[call()与apply()的区别]在ECMAScript中每一个函数都是function类型(是javascript的基本引用类型)的实例,具有一定的属性和方法.call()和apply()则是这个function类型的实例的方法.每个函数都包含这两个非继承而来的方法.这两个方法的用途都是在特定的作用域中调用函数,实际上等于设置函数体内this对象的值.(用于传递参数) 区别:apply()方法:接受两个参数,一个是在其中运行函数的作用域,另一个是参数数组(可以是Array的实例,也可以是a…
正则表达式中的exec和match方法的区别 字符串的正则方法有:match().replace().search().split() 正则对象的方法有:exec().test() 1.match match方法属于String正则表达方法. 语法: str.match(regexp) str:要进行匹配的字符串. regexp:一个正则表达式(或者由RegExp()构造成的正则表达式) match的用法主要区分就是,正则表达式是否有全局标示g. 1)如果有g全局标志,那么返回的数组保存的是,所…
IL角度理解C#中字段,属性与方法的区别 1.字段,属性与方法的区别 字段的本质是变量,直接在类或者结构体中声明.类或者结构体中会有实例字段,静态字段等(静态字段可实现内存共享功能,比如数学上的pi就可以存在静态字段).一般来说字段应该带有private 或者 protected访问属性.一般来说字段需要通过类中的方法,或者属性来暴露给其他类.通过限制间接访问内部字段,来保护输入数据的安全. 属性的本质是类的一个成员,它提供了私有字段读,写,计算值的灵活机制.属性如果是数据成员能直接被使用,但本…