在AngularJS中,继承和扩展的区别是什么?
in AngularJS, what's the difference between inherit and extend?
谁能解释一下AngularJS中继承和扩展的区别是什么?
多谢!
Lior编辑:查看这里:github.com/angular/angular.js/blob/master/src/Angular.js并搜索'inherit'找到它(当前行246)
Angular中没有继承函数。
Extend只是将属性从一个对象复制到另一个对象。这是一个常见的JavaScript代码。JQuery也有一个扩展函数
var x = { foo: 'hello' };
var y = { bar: 'world' };
angular.extend(x, y);
console.log(x); //{ foo: 'hello', bar: 'world' }
我认为你在Angular中谈论的唯一继承就是子作用域如何继承父作用域的属性。你说得很对,这里确实存在差异,因为它不是通过扩展之类的方式完成的……这是通过原型继承实现的。其中父作用域实际上是子作用域的原型。这意味着当你试图访问一个不存在的子作用域的属性时,它会下降到它的原型并检查那个属性,如果它不存在,它会下降到那个原型并检查那里的属性。
这意味着当你更新父属性时,它会更新它所有的子属性…然而,如果你为一个孩子更新,它不会更新父母…因为它直接在子元素上设置属性,而不是在它的原型(即父元素)上。
如果这还不清楚,已经有大量的博客条目/StackOverflow问题了:
- 一个是我的朋友Mark rajcock先生,他是一个提问和回答自己问题的大师。
- 和我自己的博客条目,这更多的是关于动态原型对象来产生这种效果。
- 我真的很想把自己和Doug Crockford放在一个名单里
相关文章:
- 这是什么 ==- javascript 运算符
- 我的单元测试选项是什么
- 打破承诺链的好方法是什么
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- Javascript中的空白是什么
- 是什么让一个“;Uncaught RangeError:超过了最大调用堆栈大小“;错误(Chrome,在其他浏览器中显示
- 在JavaScript中拆分日期字符串的更好方法是什么
- 将jQuery.ech()方法转换为本地JavaScript抽象的最佳方法是什么
- 处理浮点错误的最佳方法是什么
- javascript导入的最佳实践是什么
- 基于窗口宽度jquery的函数的替代方法是什么
- 在ng重复循环中显示条件内容的最佳方式是什么
- 我的客户端选项是什么
- 这是什么“;要求“;事情
- 未捕获的类型错误:topFrame.window.changeSelectedBarStyle不是函数,原因是什么
- 实现比较方法的最佳实践是什么;s的比较类型是在运行时选择的
- @@(“at at”)在ES6 JavaScript中是什么意思
- knex:根据结果创建数组的合适方法是什么
- emu -model、emu -restless和emu之间的主要区别(优缺点)是什么?
- function()在jQuery中是什么意思?这个和$(这个)有什么区别