Показать сообщение отдельно
  #96 (permalink)  
Старый 11.08.2015, 18:11
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Цитата:
ты подал вторым аргументом null, проверку прошли, а дальше ты делаешь попытку доступа к прототипу null
Не делается, потому что не проходит проверка, выделенная жирным шрифтом:
Object.setPrototypeOf(subClass.prototype, *!*superClass*/!* && superClass.prototype);


Цитата:
код твой валиться
Да ну? Проверим?

function inherits(subClass, superClass) {
    if (typeof superClass !== "function" && superClass !== null) {
        throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
    }
      
    Object.setPrototypeOf(subClass.prototype, superClass && superClass.prototype);
     
    if (superClass) {
        Object.setPrototypeOf(subClass, superClass);
    }
}

var Class = function() {};
inherits(Class, null);

var instance = new Class();
console.log(instance);
Ответить с цитированием