推荐 最新
无敌英俊大师兄

Typescript继承,子类有没有方便一点的构造器使用方法?

正常父类的构造器里会用到一些单例工具类,而且这种后续还会增加。例如: export class ClassA { constructor( public s1: ServiceA, public s2: ServiceB, public s3: ServiceC, ) { } } export class ClassB extends ClassA { constructor( public s1: ServiceA, public s2: ServiceB, public s3: ServiceC, ) { super(s1, s2, s3); } } 子类必须调父类构造器,这种传参代码,每次复制粘贴。主要是后续增加一个参数,每个子类都得改过去。 就不能设计成子类默认就有一样的构造器,已经隐式调用了super,别让人手写

0
1
0
浏览量179
楠楠不难难

做百度前端技术学院对象原型继承时,对这个问题题目的不解?

做"百度前端技术学院对象原型继承" (https://link.segmentfault.com/?enc=pmV6bgSoGtrYtmQyYH5UlA%3D%3D.Gw7eQG1aTBoOx8W5zqh3VgzZTIyeiP2kEuwnwBSGMvy3Ok7GKYdNVqXnXW5NWsfozbbaUKt4Hr773DTz%2Fo%2F9A8prPndzJcmYMs9MPGX4bLZPxFPE%2BS1Y3dGa5GZ4IcGr)时,对这个问题题目的不解 "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241015/a57e5fabe107dd83486468ab74d60246.png) 我理解的继承应该是这样的,通过原型链将函数的"prototype"链接起来,当生成一个新的实例("new")的时候,再将该实例加入到原型链中,从而实现对一些方法或属性的复用。 "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241015/ded7ed32face64a7472ec6cf6094cbf3.png) 而看这里的描述是直接将构造函数"Teacher"的"prototype"指向了"Person"。 "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241015/150941dd616b0e9b96008dc635039cbc.png) Teacher 构造函数继承 Person 所有的属性和方法 Teacher 的原型指向 Person 对于这里的测试用例也不太理解 var teacherWang = new Teacher("Miss Wang", "28", "English"); //获取 obj 的原型对象 function getProto(obj) { // your code here } console.log(getProto(teacherLiu)); // -> Teacher 这里的返回值为什么是"Teacher"呢?我们通过new创建的一个对象,它的"[[Prototype]]"应该是"Teacher.prototype"才是。 在这个描述中,出现了"原型"和"原型对象"两个名词,"原型"应该是说的是"prototype","原型对象"说的应该是"[[Prototype]]",这俩个翻译的出处在哪里呢?为什么要用这两个词来区分它们呢?

0
1
0
浏览量143
一本正经写代码

子类为什么能通过继承父类中的setName方法给自己设置父类中被private修饰的name属性?

子类为什么能通过继承父类中的setName方法给自己设置父类中被private修饰的name属性? 父类 public abstract class Employee { private String name; public String getName(){return name;} public void setName(String name) {this.name = name;} public abstract void showMsg(); } 子类 public class Manager extends Employee{ private Clerk clerk; public Manager(){} public Manager(Clerk clerk){ this.clerk=clerk; } @Override public void showMsg(){System.out.println(this.getName()); } } 测试类 下方图片是测试类,可以打印出名字.(请忽略我图片中除了name的其他属性) 下面是我的理解:private不是修饰了name吗?那Manager类中不应该没有name这个属性吗?虽然有setName方法,但是本类中没有name属性,怎么还能给name赋值上的呢? 本人小白,希望有大佬可以指点一下我理解上的错误! "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241003/d6b88559dc33d436ab951de39947a3f2.png)

0
1
0
浏览量155
只想躺平

css中的用户代理样式表和注册样式表是什么?

我写了个最简单的ul,li。默认的样式应该是li的前面有个实心圆的,但是浏览器打开并没有出现,然后我用开发者工具检查了下它,发现有个注入样式表和用户代理样式表覆盖了我的样式。于是我上网查了下,这是我自己的迷糊理解:用户代理样式表是浏览器自带的,doctype也写了,目前我也找不到它在哪里就代入了,注入样式表可能是我的某个浏览器插件影响了页面,但是我关掉了所有的插件,还是没有解决。 于是,我尝试给ul使用id选择器,想着权重会高一点,但是还是被覆盖了,然后我又加了!important,还是无济于事。 下图是加了id选择器之后的调试工具显示的页面。 我的问题如下: 1.用户代理样式表是什么?可以关掉吗? 2.注入样式表是什么,怎么关掉? 3.动态样式的优先级比!important还要高吗? 4.怎么来的莫名其妙的继承,明明没有写啊,另外这里的继承是什么意思? 5.为什么这里的#list的id权重不足以覆盖掉注入样式表里的ul元素权重 "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241013/f8692fffcd8ca2f1d2c818c390fcfe60.png)

0
1
0
浏览量138