草庐IT

继承权

全部标签

javascript - FlowType:类型的继承(类型A是类型B的子集……)

SincethereleaseofFlow42,youcoulduseobjecttypespread.typeTypeB={...TypeA};?我想这是关于FlowType的真正初学者类型的问题,但我真的找不到让我满意的答案。假设我有这种类型typeA={x:number}typeB={y:string}现在我想要基于类型A和B的另一种类型,如下所示:typeC={...A,...B,z:boolean}恕我直言,应该这样解释:typeC={x:number,y:string,z:boolean}但这显然行不通。你能给我一些建议或最佳实践吗?非常感谢。

javascript - 正确的javascript继承

我已经阅读了很多关于javascript中“继承”的文章。其中一些使用new而另一些推荐使用Object.Create。我读得越多,就越感到困惑,因为它似乎存在无穷无尽的变体来解决继承问题。谁能告诉我最被接受的方式(或者事实上的标准,如果有的话)?(我想要一个基础对象Model,我可以扩展RestModel或LocalStorageModel。) 最佳答案 简单:Object.create并非在所有环境中都受支持,但可以使用new填充。除此之外,两者还有不同的目标:Object.create只是创建一个继承自其他对象的对象,而new

javascript - 为什么 JavaScript 使用原型(prototype)继承来实现?

有很多文章和帖子解释了JavaScript继承的工作原理,但为什么JavaScript使用原型(prototype)继承而不是经典继承来实现?我喜欢JavaScript,所以我并不是说它是坏事...我只是好奇。 最佳答案 以下是BrendanEich对发生的事情的看法:https://brendaneich.com/2008/04/popularity/AsI'veoftensaid,andasothersatNetscapecanconfirm,IwasrecruitedtoNetscapewiththepromiseof"doi

javascript - 具有 (ES6) 类和继承的 Angular.js DI

背景,我们应用程序中类/模块的当前实现是common.js和CoffeeScript类。我正在拼命寻找可以使用ES6或TypeScript的解决方案,但问题仍然存在。如何使用Angular-1.x通过类继承进行DI?给定代码://SuperService.jsclassSuperService{constructor($http,$q,$etc){//Implementationisnotimportant...}}export{SubService}//SubService.jsimport{SuperService}from'./SuperService';classSubServ

javascript - JavaScript构造函数可以返回函数并保持继承吗?

functionF(){returnfunction(){return{};}}varf=newF();finstanceofF;//returnsfalse据我所知,如果我想让instanceof工作,我需要从构造函数返回this。但是我想要构造函数返回一个函数,我不能分配给this。那么,对于f=newF()返回一个函数并且仍然finstanceofF返回true,这真的是不可能的还是可以以某种方式完成? 最佳答案 functionF(){varr=function(){return{};};r.__proto__=this._

使用 _.extend() 的 JavaScript 继承

有什么区别Employee.prototype=Object.create(Person.prototype);和_.extend(Employee.prototype,Person.prototype);两者都给出了相似的结果(输出),但是下划线方法似乎将Person.prototype添加到Employee.constructor.prototype中,并且到处都有很多额外的东西,为什么?纯JS下划线_.extend的一个很好的副作用是我可以轻松地进行多重继承:似乎它不会让原型(prototype)链变得更长......_.extend(Employee.prototype,Per

Javascript 继承 - instanceof 不工作?

我正在使用javascript和html5编写一个简单的平台游戏。我以面向对象的方式使用javascript。为了让继承工作,我使用了以下内容;//http://www.sitepoint.com/blogs/2006/01/17/javascript-inheritance/functioncopyPrototype(descendant,parent){varsConstructor=parent.toString();varaMatch=sConstructor.match(/\s*function(.*)\(/);if(aMatch!=null){descendant.prot

javascript - 如果 Crockford 建议我们将它用于原型(prototype)继承,为什么他说不要使用 new 关键字?

我看过一段视频,其中Crockford告诉我们不要使用new关键字。如果我没记错的话,他说要改用Object.create。为什么他告诉我们不要使用new,如果他在他写的这篇文章中使用它来实现原型(prototype)继承:http://javascript.crockford.com/prototypal.html我希望他使用Object.create而不是new,如下所示:functionobject(o){returnObject.create((function(){}).prototype=o);}那为什么他还在用new呢? 最佳答案

javascript - 在 Angular Directive(指令)中从父级继承的新范围

假设我这样做:sAngular.app.directive('dostuff',['$compile',function($compile){return{restrict:'C',scope:{someVar:'='},link:function(scope,element,attrs){element.click(function(){//dostuffscope.someVar='somethingelse';vardropdownOutput=template();varcompiledOutput=$compile(dropdownOutput)(scope);scope.$

javascript - 从非类继承 ES6/TS 类

鉴于类是从非类扩展而来的(包括但不限于函数),functionFn(){}classClassextendsFn{constructor(){super();}}后果是什么?规范对此有何规定?看起来Babel、GoogleV8和MozillaSpidermonkey的当前实现都可以,而TypeScript会抛出Type'()=>void'isnotaconstructorfunctiontype如果这是一个有效的ES2015代码,在TypeScript中处理它的正确方法是什么? 最佳答案 TypeScript部分到目前为止,spec