传统智慧似乎是使用JavaScript作为经典语言是坏事:JavaScript的支柱是面向对象的(原型继承)和功能性的,而不是经典的,所有专家都说(例如,@ eric-elliott, Douglas Crockford等。)
然而,我们的许多API使用构造函数,并且在实例化对象时需要使用new
。例如,如果我想通过AJAX调用获取数据,我必须执行类似let xhr = new XMLHttpRequest()
的操作。
那么,我们是否暂时停留在JavaScript中的经典行为,直到/除非API更新?或者是否有某种方法可以从我们的代码中删除所有这些new
声明,可能是API工厂函数或Object.create(XMLHttpRequest.prototype)
的内容?
答案 0 :(得分:-1)
Object.create
确实完全不同 - 它用于创建班级孩子。您可以查看更详细的here,似乎ecmascript中没有这样的功能。也许在实施的浏览器中应该有一些黑客,谁知道