问题标签 [prototypal]
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 - 了解原型继承
当我检查原型是否等于Object.prototype
:
前两个返回true
,第三个返回false
。
为什么会这样?
javascript - Angularjs 1.x 中的打字稿继承
我正在尝试使用其他服务可以继承 n Angularjs 的方法和属性来创建一个抽象类服务。使用 typescripts 扩展方法将不起作用,或者如果做得正确我不会,所以尝试使用这种模式,但遗憾的是它也不起作用。Typescript 不知道从原型继承中继承的方法。他们是否有任何解决方法或解决方案,谢谢您的帮助
抽象服务类的示例代码
对于子服务类
对于为 JshintRC 提出的解决方案,以抑制 Typescript 产生的警告 "validthis": true 和 "shadow": "false
javascript - Javascript - Object.create:我的理解正确吗?
我试图完全理解原型是如何工作的。
这是我对原型的定义:
所有对象(除了基本对象)都具有的内置属性,它指向并引用“proto{}”对象,该对象是另一个对象的副本,如果在原始对象中找不到该对象的属性和方法,则可以引用该对象的属性和方法。
那是对的吗?特别是我想知道“是另一个对象的副本”部分 - 这意味着 JS 引擎在内存空间中创建对象 B 的存储副本,对象 A 的原型属性指向该副本以供参考。
现在我的问题是Object.create
:
我的理解是,此方法使使用它的任何对象的原型(或对象本身?)继承(IOW,引用传入对象的副本)传入的另一个对象的属性和方法。
在上面的代码中,john
对象被创建并且它的原型属性指向一个创建的对象,该对象具有对象的方法和属性Person
?或者换句话说,Object.create
复制Person
对象并将其放入原型属性john
指向的内存空间中。这是对正在发生的事情的正确理解吗?
如果是这样,是制作对象('person')的副本的原因,原型john
指向,因为这允许修改属性和方法的值而不覆盖Person
对象中的道具/方法与john
继承相关的原型对象?
我试图打破这一点,以便我可以理解并尽量不要使这个概念过于复杂。
这是我画的一张图片,以进一步说明我目前的理解: