2013-10-12 2 views
3

По сравнению с фактическим способом создания «классов» в JavaScript, как таковые:Выполнения ES6 наследования класса

function MyClass(){ 
} 

MyClass.prototype.yada = function(){}; 

к новому ES6 классу

class MyClass { 

    yada(){ 
    } 
} 

не удалось найти какие-либо сравнения производительности, но меня действительно интересует __proto __/Object.setPrototypeOf наследование, чем только «классный сахар», который предлагает ES6.

+1

Пока нет ES6, поэтому кажется, что рано говорить о производительности. И даже тогда это зависит от реализации. Синтаксис/Язык не имеет производительности. Хотя я понимаю, что функция ES6 - это просто синтаксический сахар для классического синтаксиса прототипа. – user2736012

+0

ES6, ES-Next, Harmony, вы называете это. Меня интересуют только результаты;) – pocesar

+0

Это зависит от того, как наконец реализованы классы (если есть какие-либо изменения, хотя и маловероятные), и если есть какие-либо требования проверки спецификации, которые могут замедлить производительность кода. Однако я сомневаюсь, что есть большая разница. Разумеется, все зависит от того, как оба реализованы в ES6-совместимых реализациях, которые действительно будут учитывать производительность. –

ответ

2

ES6 классы действительно просто синтаксический сахар для функций конструктора и прототипов инициализации. То есть обе версии вашего определения MyClass в значительной степени эквивалентны и, вероятно, будут иметь одинаковые характеристики производительности во всех реализациях (а не в том, что они еще есть).

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