I saw a video in which Crockford told us not to use the new
keyword. He said to use Object.create instead if I\'m not mistaken. Why does he tell us not to use
This is a really old question, but…
When Crockford wrote the article you mention and the discussion linked by Paul Beusterien, there was no Object.create. It was 2008 and Object.create
was, at most, a proposal (or really rarely implemented in browsers).
His final formulation is basically a polyfill:
if (typeof Object.create !== 'function') {
Object.create = function (o) {
function F() {}
F.prototype = o;
return new F();
};
}
newObject = Object.create(oldObject);
His only use of new
is, therefore, to simulate (or emulate) what Object.create
must do.
He doesn’t advise us to use it. He presents a polyfill that uses it, so you don’t have to use it anywhere else.