Если я хочу создать объект в JavaScript, который имеет ссылку прототипа на другой объект, но имеет несколько своих свойств, как я могу это сделать?Сокращение для Object.create() с несколькими свойствами
var object1 = {
a: 1,
b: 2
};
var object2 = Object.create(object1);
object2.c = 3;
object2.d = 4;
console.log(object2); // my new object with object1 as it's prototype link
Моя задача здесь в том, что я должен установить свойства object2
«s один на один раз.
Мой другой вариант:
var object1 = {
a: 1,
b: 2
};
var object2 = {
c: 3,
d: 4
};
Object.setPrototypeOf(object2, object1);
console.log(object2);
Моя задача выше является то, что производительность должна быть ужасными. А именно, setPrototypeOf
работает медленно. https://jsperf.com/object-create-vs-object-setprototypeof
И тогда, конечно, есть «стенография», где вы предоставите, writeable
, enumerable
и все, что в Object.create()
, но это на самом деле не стенографии.
Любые идеи?
Вы всегда 'вар object2 = Object.assign (Object.create (object1), {C: 3, г: 4}));'? – loganfsmyth
На самом деле, это один из приемлемых вариантов использования для объекта.setPrototypeOf', и довольно легко оптимизируется. Если это слишком медленно для вас, вы должны указать проблему у своего поставщика браузера. – Bergi