我可以在不调用构造函数的情况下实例化JS API对象吗?

时间:2017-07-17 16:50:46

标签: javascript

传统智慧似乎是使用JavaScript作为经典语言是坏事:JavaScript的支柱是面向对象的(原型继承)和功能性的,而不是经典的,所有专家都说(例如,@ eric-elliott, Douglas Crockford等。)

然而,我们的许多API使用构造函数,并且在实例化对象时需要使用new。例如,如果我想通过AJAX调用获取数据,我必须执行类似let xhr = new XMLHttpRequest()的操作。

那么,我们是否暂时停留在JavaScript中的经典行为,直到/除非API更新?或者是否有某种方法可以从我们的代码中删除所有这些new声明,可能是API工厂函数或Object.create(XMLHttpRequest.prototype)的内容?

1 个答案:

答案 0 :(得分:-1)

Object.create确实完全不同 - 它用于创建班级孩子。您可以查看更详细的here,似乎ecmascript中没有这样的功能。也许在实施的浏览器中应该有一些黑客,谁知道