我正在尝试在类型记录中实例化新的HTMLDivElement

var elem = new HTMLDivElement();

但是浏览器抛出

Uncaught TypeError: Illegal constructor.

解决办法似乎是使用

var elem = document.createElement('div');

但我觉得这不太理想是因为各种原因。

当有一个DOM元素时,为什么不能直接实例化DOM元素?中的关键字for inlib.d.ts?

declare var HTMLDivElement: {
    prototype: HTMLDivElement;
    new (): HTMLDivElement;
}
Smile淡莣YKSmile淡莣YK提问于
1098480274学生回答于
已采纳

表上基本上有三种选择:

  1. 从DOM元素中删除构造签名,并删除instanceof是右操作数。这是不可取的,因为您确实更希望捕获错误,在这些错误中,有人意外地编写了代码x instanceof foo而不是x instanceof Foo(在哪里fooFoo)
  2. 从DOM元素中删除构造签名,但保留instanceof检查就位。这很糟糕,因为foo instanceof HTMLElement写起来很合理。
  3. 当前的情况,其中存在构造函数,但您必须知道不要调用它们。

不能使用普通构造函数构造DOM元素,因为您应该通过document.createElement

回答过的其他问题

TensorFlow有哪些应用实践?

可以在其上构建其他的机器学习算法,比如决策树或k近邻。下面是一个由TensorFlow组成的生态系统: 📷 从上面的描述可以看出,TensorFlow可集成性良好,具有包括GPU处理、python和Cpp在内的依赖关系,也可以使用它与docker等容器软件集成... 展开详请

活动防刷是如何实现的?

对抗刷单,一般来讲主要从三个环节入手: 注册环节:识别虚假注册、减少“羊毛党”能够使用的账号量。在注册环节识别虚假注册的账号,并进行拦截和打击。 登录场景:提高虚假账号登录门槛,从而减少能够到达活动环节的虚假账号量。比如,登录环节通过验证码、短信验证码等手段来降低自动机的登录效率...... 展开详请

Python请求-No connection adapters问题怎么解决?

已采纳

需要包括协议方案:

'http://192.168.1.61:8080/api/call'

没有http://部分,requests不知道如何连接到远程服务器。

AWS Athena JDBC PreparedStatement

目前,我认为Athena JDBC jar不支持带位置变量的预处理语句。使用myBatis时,预处理语句变量#{variable}不起作用,而字符串替换则起作用${variable}。 select * from my_table where col = #{col} limi...... 展开详请

控制台应用程序与Win32应用程序 - DirectSound捕获设备枚举提供不同的结果

事实证明我没有初始化COM。 我在main()程序开始时添加了以下代码段,程序检索了预期的GUID: HRESULT hr = NULL; hr = CoInitialize(NULL); if( FAILED(hr) ) { printf("Fa...... 展开详请

Android以编程方式安装apk

不幸的是,您无法在后台完全安装应用程序(假设您正在通过启动Intent尝试执行此操作doInBackground())而无需用户干预。当您启动该意图时,您只需将Intent传递给系统的包管理器并要求它安装它。包管理器需要询问用户确认。没有root或特权,即使拥有权限,也无法以编...... 展开详请

所属标签

扫码关注云+社区