问题标签 [javascript-inheritance]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - AngularJS:更改 $rootScope 变量不会更改 ng-model 中的第一个选定选项
我有一个我似乎无法解决的具体问题。
在 html 中,我有以下代码:
在我的控制器中:
所以当页面第一次加载时,第一个选项被选中。如果我将其更改$rootScope.proizvod = '1';
为$rootScope.proizvod = '3';
它将加载第三个选项。
现在,当您选择其他值时,它会将其存储在 中$rootScope.proizvod
,但稍后,在某些功能中,我想将其重置$rootScope.proizvod
回 '1' 并且它似乎不起作用。
我在这里想念什么?
PS没有$parent.proizvod
,我的选择甚至不会改变 $rootScope.proizvod
值。
编辑:这是另一个功能:
upisPodataka 函数在单击按钮时被调用。
javascript - JS Getters/Setters 关于原型继承
最近我在 es6 类中写了一个小库。现在我决定将其重写为 es5 代码。因为该库大量使用类继承(A 类扩展 B),所以我不得不编写一小段代码来模拟 es6 类继承:
结合.js
但据我所知,这段代码不能像这样组合在基本函数上定义的 getter/setter:
有没有办法继承函数原型上定义的getter/setter?
odoo-10 - 如何仅在 Odoo 10 中加载视图后运行 javascript
我在https://www.odoo.com/apps/modules/8.0/web_menu_hide_8.0/上安装了网络隐藏菜单
我修改为在 Odoo 10 上使用它,但是如果我们按下隐藏按钮,表单将调整为全宽,如果我们在按下隐藏按钮后更改为另一个视图,表单页面将保持与原始页面相同(不完整宽度)。
所以我需要在页面渲染后在表单视图上调整类“o_form_sheet”。我可以知道如何使用 javascript 做到这一点吗?我需要扩展哪个类和方法?
javascript - 理解 typescript 生成的 __extends 函数?
我正在玩Typescript并试图理解编译器生成的已编译 Javascript 代码
打字稿代码:
生成的Javascript代码:
根据Mozilla 文档,Javascript 继承是这样的:
我在 Typescript 生成的代码中不明白的部分是这个
1.这条线的目的是什么?看起来它正在将 A 的所有键复制到 B 中?这是对静态属性的某种破解吗?
2. 这是做什么的?
我不明白这部分:(__.prototype = b.prototype, new __())
为什么函数 B() 会返回这个?
如果有人可以逐行向我解释这一点,我将不胜感激。
javascript - ES6 `static get length()` 未按预期继承
我在为length
我的 ES6 类扩展的属性提供静态 getter 函数时遇到问题。事实证明,实际的Function.length
getter 总是优先于我自己的实现。
在上面的示例中,Foo
完全符合我的预期,Bar
而不是太多。Bar.value
确实回来了'FooBar'
,但让我Bar.length
感到0
惊讶。
我花了一段时间才意识到它的0
来源,正如我完全预期的那样(并且在某种程度上6
会理解)。3
事实证明,0
提供的值Bar.length
实际上是constructor
函数的长度Bar
,我在用 ES5 表示法编写相同的示例时意识到了这一点,但有一种快速的方法可以证明这一点;只需添加一个constructor
到Bar
.
有办法解决这个问题:
- 添加
static get length()
到所有扩展(不是我的继承想法) - 使用不同的属性名称(例如
static get size()
按预期工作,但不是 JS 中常用的属性) length
从具有工作(例如class Foo extends Array {...}
)的内置类扩展基础-
如果有更合适的方法可以做到这一点,这些都不是我想做的。
所以我的问题是;有没有人知道一个正确的方法来拥有一个按预期继承的自定义属性覆盖,或者我太固执了?
如前所述,我通过将类语法编写为(我相信)将是 ES5 等价物来找出问题所在,因为它可能对其他开发人员有益,并且可能会阐明我认为ES6 类是如何工作的在这里。(如果有人对如何在 Stackoverflow 上使这个位可折叠有提示,请随时编辑/建议)
我想在 ES5 语法中发生了什么
我知道 ES6 类主要是围绕 JS 原型继承的语法糖,所以似乎发生的Bar
事情是这样的;
我希望Foo
考虑到属性描述符,例如:
ecmascript-6 - 自定义错误类未正确扩展
我有几个自定义错误类
通用错误.js
NotFoundError.js
但是,当我使用此功能时
当我抛出新的 NotFoundError() 时,由于某种原因,error.name 是Error
而不是NotFoundError
stringify 不是一个函数?
谁能告诉我怎么了?
编辑:从我的代码中删除了打字稿,但它不起作用!
javascript - JS 继承 - MDN 文章
给定MDN JS Inheritance 文章,我们有这些行
我的问题是,为什么要使用 Object.create 而不仅仅是 Person.prototype?我了解链接原型的必要性。但这里是控制台示例,呈现对 Object.create 的调用实际上没有连接继承的方法:
这是为什么?是文章中的错误吗?
javascript - 出现 React 流错误:模块不是多态类型。如何扩展一个类?
我正在尝试扩展我现有的布局以基本上覆盖方法 renderHeader() 但流程不喜欢它:
module ./Layout [1] 不是多态类型。
我该如何解决?
这是我试图扩展的一个类(它不是抽象的):
Layout.js
这是我应该扩展的类: LayoutRegistration.js