所以我看到很多 JavaScript 代码在创建构造函数时使用“new”。在阅读了部分 JavaScript the Good Parts 之后,似乎使用“新”不是猫的睡衣。那是4年前的事了……还是不推荐吗?目前的标准是什么?
问问题
321 次
2 回答
7
从什么时候开始new
不推荐了?D. Crockford 有一个有效的观点和强烈的观点,但new
它是语言的一部分,并且在许多项目中都被大量使用。new
是原型继承模型的一部分,必须用于通过构造函数创建新实例。Crockford 指出了一种this
适当使用上下文的纯函数方法,并且return this
能够在子对象之间继承属性和方法。这是对常见问题的不同解决方案,但这并不意味着new
不应该使用它。事实上,有史以来复制/粘贴最多的 JS 片段之一是 Crockford 的object.create
polyfill,它使用new
:
if (typeof Object.create !== 'function') {
Object.create = function (o) {
function F() {}
F.prototype = o;
return new F();
};
}
于 2012-08-09T07:57:17.450 回答
2
自 2008 年以来,除了受 Crockford 影响Object.create
进入 ECMAScript 5 之外,没有什么改变:new
仍然具有 Douglas Crockford 强烈指出的相同行为和缺点。我个人的看法是,他夸大了问题,让开发人员反对一个有用的操作符,所以我继续使用它没有问题;我建议其他开发人员自己做决定,而不是盲目地内化和反刍(公认的令人钦佩的)Crockford。
于 2012-08-09T09:21:57.693 回答