gpt4 book ai didi

javascript - (this.constructor) 在 typescript 中意味着什么?

转载 作者:行者123 更新时间:2023-12-03 03:02:39 26 4
gpt4 key购买 nike

当我看到 jQTree( https://github.com/mbraak/jqTree ) 的源代码时,它是用 Typescript 编写的;我看到了这个:

export default class SimpleWidget{
protected static defaults = {};
public options:any
protected $el : JQuery

constructor(el:Element,options:any){
this.$el = $(el);
console.log(typeof SimpleWidget)
let defaults = (<typeof SimpleWidget>this.constructor).defaults;
console.log(defaults)
this.options = $.extend({},defaults,options);
}
}

(this.constructor) 是什么意思?断言后如何获得静态?

最佳答案

此类将编译为构造函数,并直接附加静态属性:

function SimpleWidget(el, options) { ... }

SimpleWidget.defaults = {};

子类将定义自己的默认值:

class DerivedWidget extends SimpleWidget {
protected static defaults = { prop: 'derived default' };
}

它将编译为:

DerivedWidget.defaults = { prop: 'derived default' };

因此,父级将希望访问子级的静态默认值,如果访问 SimpleWidget.defaults,则父级将无法获取它。但它可以访问 this.constructor.defaults,这是动态的。

关于javascript - (<typeof className>this.constructor) 在 typescript 中意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47304494/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com