commit
a7b50300c0
1 changed files with 2 additions and 2 deletions
|
@ -72,8 +72,8 @@ Why so?
|
|||
That's for historical reasons.
|
||||
|
||||
- The `"prototype"` property of a constructor function works since very ancient times.
|
||||
- Later in the year 2012: `Object.create` appeared in the standard. It allowed to create objects with the given prototype, but did not allow to get/set it. So browsers implemented non-standard `__proto__` accessor that allowed to get/set a prototype at any time.
|
||||
- Later in the year 2015: `Object.setPrototypeOf` and `Object.getPrototypeOf` were added to the standard, to perform the same functionality as `__proto__`. As `__proto__` was de-facto implemented everywhere, it was kind-of deprecated and made its way to the Annex B of the standard, that is optional for non-browser environments.
|
||||
- Later, in the year 2012: `Object.create` appeared in the standard. It allowed to create objects with the given prototype, but did not allow to get/set it. So browsers implemented non-standard `__proto__` accessor that allowed to get/set a prototype at any time.
|
||||
- Later, in the year 2015: `Object.setPrototypeOf` and `Object.getPrototypeOf` were added to the standard, to perform the same functionality as `__proto__`. As `__proto__` was de-facto implemented everywhere, it was kind-of deprecated and made its way to the Annex B of the standard, that is optional for non-browser environments.
|
||||
|
||||
As of now we have all these ways at our disposal.
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue