Исключение нулевого указателя генерируется, когда приложение пытается использовать null в случае, когда требуется объект. К ним относятся:
null
. null
. null
, как если бы это был массив. null
, как если бы это был массив. null
как будто это было значение Throwable. Приложения должны бросать экземпляры этого класса, чтобы указать на другие незаконные использования объекта null
.
Ссылка: http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html
Если вы боитесь (как видимо, вы должны ...) влияния производительности на использование Object.setPrototypeOf()
, но хотите, чтобы синтаксис создания объекта был похож на то, как структурирован ваш код, попробуйте следующее:
var MyPrototype = {
method1 : function(){...},
method2 : function(){...},
...
};
var newObject = Object.assign(Object.create(MyPrototype), {
property : 1,
property2 : 'text'
});
Другой вариант - объединить литерал объекта с мелкой копией myPrototype
, хотя это может быть не ваше желание.
var MyPrototype = {
method1 : function(){},
method2 : function(){}
};
var newObject = Object.assign({
property : 1,
property2 : 'text'
}, MyPrototype);
Object.create
использует тот же механизм – Amit 7 September 2015 в 19:16__proto__
и что-то вродеproto-to-create
. – loganfsmyth 8 September 2015 в 04:15