2017-01-29 6 views
0

Работы в реакции родной, у меня есть кусок кода, который я не видел продемонстрирован в различных местах (например https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/super)«супер» функции или класса - реагируют родную

let Vehicle = { 
    debug() { 
     return 'Vehicle'; 
    } 
}; 

let Car = { 
    debug() { 
     return super.debug() + ' is a Car'; 
    } 
}; 

Независимо от того, как я инстанцирует автомобиль, я получаю сообщение об ошибке: 'super' outside of function or class

//set prototype on object 
Object.setPrototypeOf(Car, Vehicle); 
Car.debug(); //error 
//create instance 
let c = Object.create(Car); 
//set prototype on instance 
Object.setPrototypeOf(c, Vehicle); 
c.debug(); //error 

Почему эта ошибка быть брошенным, и как я могу назвать super с объектами?

+0

Невозможно воспроизвести вашу проблему. Ваш код работает как ожидалось (я тестировал FF 50.1.0). Можете ли вы поделиться тем, в какой среде вы используете этот код? – wing

+0

response-native, в частности, 'index.android.js'. IDE - это WebStorm в Windows. – rmirabelle

ответ

1

Похоже setPrototypeOf не имеет совместимы в реакции роднойhttps://facebook.github.io/react-native/docs/javascript-environment.html. И здесь я не вижу плагин babel для Object.setPrototypeOfhttps://github.com/facebook/react-native/blob/master/babel-preset/configs/main.js#L16.

+0

Найден плагин - https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-object-set-prototype-of-to-assign - но я смущен, почему вещь как «плагин babel» даже существует. Возможно, это поможет: http://jamesknelson.com/the-six-things-you-need-to-know-about-babel-6/ – rmirabelle

Смежные вопросы