Three.js: ES6 рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 19 рдЬреВрди 2017  ┬╖  92рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: mrdoob/three.js

рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рдЗрд╕ 'рдореБрд╣рд╛рд╡рд░реЗ' рдХреЛ рдХреЛрдб рдореЗрдВ рдХреНрдпреЛрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ:

PointLight.prototype = Object.assign( Object.create( Light.prototype ), {

рдЧрдВрднреАрд░рддрд╛ рд╕реЗ? рдлрдВрдХреНрд╢рди (рдиреЗрд╕реНрдЯреЗрдб рдлрдВрдХреНрд╢рди (рдкреИрд░реЗрдВрдЯрдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк) рдХреЙрдорд╛ рд╢реЙрдЯрдЧрди рдмреНрд░реИрдХреЗрдЯ?

рд╡рдлрд╛рджрд╛рд░ рджреЛ рдкрдВрдХреНрддрд┐ рд╢реИрд▓реА рдЕрднреА рднреА, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рд╛рдордЧреНрд░реА рд╡рд░реНрдЧ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рдФрд░ рдХреНрд▓реАрдирд░ рд╣реИрдВред рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╕реЗрдЯ рдХрд░реЗрдВред рд╕рдорд╛рдкреНрддред рдХреГрдкрдпрд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░реЛрдЧ рдХреЛ рдкрдХрдбрд╝рдХрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдмрд░реНрдмрд╛рдж рди рдХрд░реЗрдВ - рд╡рд╕реНрддреБрдУрдВ рдФрд░ рд╡рд┐рд░рд╛рд╕рдд рдХреЛ рдХреЛрдбрд┐рдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЛ рд╣рд╕реНрддрдореИрдереБрди рдХрд░рдиреЗ рдХреА рд╡рд┐рдЪрд┐рддреНрд░ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдкреВрд░реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдПрдХ рд╢реИрд▓реАред рдЗрд╕реЗ рдмрджрд▓рдиреЗ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЬрдм рддрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореВрд▓ рд░реВрдк рд╕реЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдореИрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред

рд╕рднреА 92 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рддреЛ рдЖрдк рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЗрд╕ рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗ рд░рд╣реЗ рд╣реИрдВ?

PointLight.prototype = Object.create( Light.prototype );
Object.assign( PointLight.prototype, {
class PointLight extends Light

рд╣реЗрд╣реЗ ЁЯШД рдФрд░ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ ...

@sasha240100 рдХрд┐рд╕реА рджрд┐рди...

@mrdoob рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ - рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рджреЛ рддрд░реАрдХреЗ рд╕реАрдзреЗ рд╕рдордХрдХреНрд╖ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдУрдкреА рддреБрд▓рдирд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ

PointLight.prototype = Object.assign( Object.create( Light.prototype ), { 
    constructor: PointLight,
    prop1: 'something',
    method1: function someFunction() { .. },
    ...
});

рд╕рд╛рде

function PointLight () { ... };

PointLight.prototype = Object.create( Light.prototype );

PointLight.prototype.constructor = PointLight;

PointLight.prototype.prop1 = 'something';

PointLight.prototype.method1 = function someFunction() { .. };

...

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрд╣ рдпрд╣рд╛рдБ рдХрд┐рд╕ рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЬрд╣рд╛рдБ рддрдХ рдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдБ рдХрд┐ рдпреЗ рд╢реИрд▓рд┐рдпрд╛рдБ рд╕рдорд╛рди рд╣реИрдВ - рдХреНрдпрд╛ рдореБрдЭреЗ рдХреБрдЫ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИ?
рдпрд╛ рдПрдХ рдмрд╛рд░ рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рдФрд░ рдХреЛрдбрдмреЗрд╕ рдореЗрдВ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╢реИрд▓реА рдХреЛ Object.Assign рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛?

@looeee @ bfred-it @mrdoob рд╕рд┐рд░реНрдл rollup-babel рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рддреБрд▓рдирд╛ :
рд╡рд░реНрддрдорд╛рдиред es5 + es6 рд╕рджреНрднрд╛рд╡ рдореЙрдбреНрдпреВрд▓ред

import { LineBasicMaterial } from './LineBasicMaterial';
import { Color } from '../math/Color';

function LineDashedMaterial( parameters ) {

    LineBasicMaterial.call( this );

    this.type = 'LineDashedMaterial';

    this.scale = 1;
    this.dashSize = 3;
    this.gapSize = 1;

    this.setValues( parameters );

}

LineDashedMaterial.prototype = Object.create( LineBasicMaterial.prototype );
LineDashedMaterial.prototype.constructor = LineDashedMaterial;

LineDashedMaterial.prototype.isLineDashedMaterial = true;

LineDashedMaterial.prototype.copy = function ( source ) {

    LineBasicMaterial.prototype.copy.call( this, source );

    this.scale = source.scale;
    this.dashSize = source.dashSize;
    this.gapSize = source.gapSize;

    return this;

};


export { LineDashedMaterial };

рдИрдПрд╕2015+. рд╕рдорд╛рди рдХреЛрдб, рд▓реЗрдХрд┐рди es2015+ рд╕рд╛рде рдореЗрдВ babel-plugin-transform-class-properties :

import { LineBasicMaterial } from './LineBasicMaterial';
import { Color } from '../math/Color';

export class LineDashedMaterial extends LineBasicMaterial {
  type = 'LineDashedMaterial';

  scale = 1;
  dashSize = 3;
  gapSize = 1;
  isLineDashedMaterial = true;

  constructor(parameters) {
    super();
    this.setValues( parameters );
  }

  copy(source) {
    super.copy(source);

    this.scale = source.scale;
    this.dashSize = source.dashSize;
    this.gapSize = source.gapSize;

    return this;
  }
}

ES6 рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдЬреЛ рддреАрди.js рдХреЛрдб рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддреА рд╣реИрдВ:

рдореИрдВ ES2015+ рдкрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реВрдВ, рд╣рдореЗрдВ рдмрд╕ рдЙрд╕реА рдХреЛрдб рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдЦреЛрдЬрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкреНрд░рджрд░реНрд╢рди рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕рдорд╛рди рд░рд╣рддрд╛ рд╣реИред

рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдореЗрд░рд╛ рдПрдХ рдкреНрд░рд╢реНрди рд╣реИред рд╣рдо рд╡реЗрдХреНрдЯрд░3.рдЕрдирдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЬреИрд╕реА рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдХреНрд▓рд╛рд╕ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдореЗрдВ рдХреИрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВрдЧреЗ? рдПрдХ рдирдпрд╛ рджрд╛рдпрд░рд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрдВрдж рдХрд░рдиреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред рдпрд╣ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рддрдВрддреНрд░ рд╣реИ рдЬреЛ рд╡рд╕реНрддреБ рдирд┐рд░реНрдорд╛рдг рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рдХрдо рд░рдЦрддрд╛ рд╣реИред

рдХреНрдпрд╛ рд╣рдореЗрдВ рдЗрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ Object.assign рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?

@ Mugen87 @mrdoob es6 рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдХреБрдЫ рд░реЛрдЪрдХ рдЬрд╛рдирдХрд╛рд░реАред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ Object.assign рдкрд░:
image
рдЗрд╕ рд▓реЗрдЦ рд╕реЗ

рд╣рдо рд╡реЗрдХреНрдЯрд░3.рдЕрдирдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЬреИрд╕реА рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдХреНрд▓рд╛рд╕ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдореЗрдВ рдХреИрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВрдЧреЗ? рдПрдХ рдирдпрд╛ рджрд╛рдпрд░рд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрдВрдж рдХрд░рдиреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред

@ Mugen87 рдХреНрдпрд╛ рд╡реЗ рд╕рд┐рд░реНрдл рдЧреИрд░-рдирд┐рд░реНрдпрд╛рдд рдореЙрдбреНрдпреВрд▓ рд╕реНрдХреЛрдкреНрдб рдСрдмреНрдЬреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ? рдХреБрдЫ рдЗрд╕ рддрд░рд╣;

const tempMatrix = new Matrix();    

export default class Vector3{
    unproject() {
        // uses tempMatrix
    }
}

рдЖрд╣ рд╣рд╛рдБ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

@mrdoob рд╡рд╛рд╣! рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдХреНрдпрд╛ рд╣рдо рдПрдХ рд╢рд╛рдЦрд╛ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдХреБрдЫ рд╡рд░реНрдЧреЛрдВ рдХреЛ es6 рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рд╕рдВрдХрд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИ?


@ satori99 рдЧреНрд▓реЛрдмрд▓реНрд╕ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП tempMatrix рдХреЛ рд╡реЗрдХреНрдЯрд░3 рдХреЛрдб рдХреЗ рдЕрдВрджрд░ рдХреИрд╕реЗ рд░рдЦрд╛ рдЬрд╛рдП, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ:

export default class Vector3 {
    static tempMatrix = new Matrix();

    unproject() {
        // uses Vector3.tempMatrix
    }
}

@mrdoob рд╡рд╛рд╣! рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдХреНрдпрд╛ рд╣рдо рдПрдХ рд╢рд╛рдЦрд╛ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдХреБрдЫ рд╡рд░реНрдЧреЛрдВ рдХреЛ es6 рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рд╕рдВрдХрд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИ?

рдореБрдЭреЗ рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛! рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ WebVR рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдореЗрд░реЗ рдЕрд▓рд╛рд╡рд╛ рдХреЛрдИ рдФрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

@ sasha240100 рдореЙрдбреНрдпреВрд▓ рд╕реНрдХреЛрдкреНрдб рд╡рд░реНрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рд╡реЗ рдирд┐рдпрдорд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛрдб рд╕реЗ рдЫрд┐рдкреЗ рд░рд╣рддреЗ рд╣реИрдВ, рдЬреЛ рдЕрд╕реНрдерд╛рдпреА рдЪрд░ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд▓рдЧрддрд╛ рд╣реИред

рдореБрдЭреЗ рдирд┐рдЬреА рдпреБрджреНрдзреЛрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ "рд╣рдо рдпрд╣рд╛рдВ рд╕рднреА рд╡рдпрд╕реНрдХ рд╣реИрдВ" рдкрд╛рдЗрдереЛрдирд┐рд╕реНрдЯрд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛, рд▓реЗрдХрд┐рди рдЕрд╕реНрдерд╛рдпреА рдЪрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╛рдорд╕реНрдерд╛рди рдХреЛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдкреНрд░рджреВрд╖рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╕рд╛рде рд╣реА, рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рдордореЗрдВ рд╕реЗ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЕрдкрдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдореВрд▓ рдореЙрдбреНрдпреВрд▓ рд╕рдорд░реНрдерди рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рд╣реИ, рд╡реЗ рд╕реАрдзреЗ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЗрдВ рд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрдкрд╛рджрди рдХреЗ рдмрд╛рдж рджреЗрдЦрдиреЗ рд╡рд╛рд▓реЛрдВ рдФрд░ рдЯреНрд░рд╛рдВрд╕рдкрд┐рд▓рд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдпрд╣ рдПрдХ рдФрд░ рдЕрдзрд┐рдХ рд╕реБрдЦрдж рддрд░реАрдХрд╛ рд╣реИред рд╡рд░реНрдЧ рдЧреБрдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрд╣ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд╡рд░реНрддрдорд╛рди рд╡рд░реНрдЧ рдпреБрдХреНрддрд┐ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реИрдВред

рдмрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдпрд╛рдЪрдирд╛ред рд╣рдореЗрдВ рд╢рд╛рдпрдж рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд╢реАрд░реНрд╖рдХ рдХреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП - "ES6 рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░реЗрдВ", рдХреНрдпреЛрдВрдХрд┐ рдЕрдм рдзрд╛рдЧрд╛ рдХреБрдЫ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд╣реЛ рдЧрдпрд╛ рд╣реИред

рдкреИрдЯрд░реНрди рдХреНрдпреЛрдВ рдмрджрд▓реЗрдВ @ Mugen87 @ satori99 ?

method =(()=>{ 
    const vec3forThisScope =...; 
    return (arg)=>{...}
})()

рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХреНрдпреЛрдВ рди рдХрд░реЗрдВ, рдЗрд╕реЗ js . рдХреЗ рдЕрдиреНрдп рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдврд╝рд┐рдпрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдЯреНрд░рд╛рдВрд╕рдкрд┐рд▓рд░ + рдЯрд╛рдЗрдк рдЪреЗрдХрд░ рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдПрдХ рд╕реБрдкрд░рд╕реЗрдЯ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреЛрдб рдмреЗрд╕ рдХреЛ .ts рдлрд╛рдЗрд▓реЛрдВ рдкрд░ рд▓реЗ рдЬрд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдФрд░ рдЯрд╛рдЗрдк рдЪреЗрдХрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдзреАрд░реЗ-рдзреАрд░реЗ рдИрдПрд╕ 6 рдкрд░ рд░рд┐рдлреИрдХреНрдЯрд░ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред

рдпрд╣ рдбрд░рд╛рд╡рдирд╛ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдЖрдкрдиреЗ рдХрднреА рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдмрдбрд╝рд╛ рд╕реАрдЦрдиреЗ рдХреА рдЕрд╡рд╕реНрдерд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕рд╕реЗ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд▓рд╛рднреЛрдВ рдХреЗ рд▓рд┐рдП рднреБрдЧрддрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯреА рд╕реА рдХреАрдордд рд╣реЛрдЧреАред рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдореБрджрд╛рдп рдЗрд╕ рд╕рдВрдХреНрд░рдордг рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдФрд░ рд╡рд░реНрддрдорд╛рди рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдЦрд┐рд▓рд╛рдл рдкреНрд░рджрд░реНрд╢рди рдкрд░реАрдХреНрд╖рдг рдмрдирд╛рдиреЗ рдореЗрдВ рдмрд╣реБрдд рдЦреБрд╢ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛ рд╕рдХреЗ рдХрд┐ рдЗрд╕реЗ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рд▓реЗрдЦ:

рдХреЛрд░ рдбреЗрд╡рд▓рдкрд░ рдПрдВрдбрд░реНрд╕ рд╣реЗрдЬрд▓реНрд╕рдмрд░реНрдЧ рдХреЗ рдЙрджреНрдзрд░рдг рдХреЗ рд▓рд┐рдП, рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЬрдиреНрдо рдЧреНрд░рд╛рд╣рдХреЛрдВ рдФрд░ рдЖрдВрддрд░рд┐рдХ рдЯреАрдореЛрдВ рдХреА рд╢рд┐рдХрд╛рдпрддреЛрдВ рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ рд╣реБрдЖ рдерд╛ рдХрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдбрд╝реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЙрдзрд╛рд░ рдирд╣реАрдВ рджреЗрддрд╛ рдерд╛ред

рд▓рдХреНрд╖реНрдп "рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХрдХреНрд╖рд╛рдУрдВ, рдореЙрдбреНрдпреВрд▓ рдФрд░ рд╕реНрдерд┐рд░ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреЗ рд╕рд╛рде рдордЬрдмреВрдд рдХрд░рдирд╛" рдерд╛, рдЗрд╕рдХреЗ рдЦреБрд▓реЗ рдорд╛рдирдХреЛрдВ рдФрд░ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╣реЛрдиреЗ рдХреЗ рд▓рд╛рдн рдХрд╛ рддреНрдпрд╛рдЧ рдХрд┐рдП рдмрд┐рдирд╛; рдкрд░рд┐рдгрд╛рдо "рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдХреЗрд▓ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХреЗ рд▓рд┐рдП рднрд╛рд╖рд╛" рдерд╛, рдЬрд┐рд╕реЗ рднрд╛рд╖рд╛ рдХреЗ рд╕реБрдкрд░рд╕реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдЬрдм рддрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореВрд▓ рд░реВрдк рд╕реЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдореИрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред

@mrdoob

рдореИрдВ рдпрд╣ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧ рди рдХрд░рдиреЗ рдХреЗ рд╡реИрдз рдХрд╛рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реЗ рд╕реАрдзреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдирд╣реАрдВ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХреЛрдб рдХреА рд╕рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░рдг рдЖрдк рдЗрд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдирд╣реАрдВ рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ рдЬреЛ рдХреЗрд╡рд▓ рд╕рдордп рдХреА рдЬрд╛рдБрдЪ рдХреЗ рд╕рдВрдХрд▓рди рдХреЗ рд▓рд┐рдП рд╣реИред рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд░рдирдЯрд╛рдЗрдо рдЬрд╛рдБрдЪ рднрд╛рд╖рд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЗрд╕реЗ рдХрднреА рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ рдХрд┐ рд╕рднреА рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рдХреЛрдб рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рддрдм рд╡реИрдирд┐рд▓рд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рд╣реЛрдЧрд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдПрдХ рдЯрд╛рдЗрдк рдХреА рдЧрдИ рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдФрд░ рдмрдбрд╝реЗ рдХреЛрдб рдмреЗрд╕ рдореЗрдВ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд▓рд╛рднреЛрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдпрд╛рдж рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЖрдк рдЕрднреА рднреА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдкреВрд░рд╛ рдмрд┐рдВрджреБ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╕реБрдкрд░рд╕реЗрдЯ рд╣реИред рдЖрдк рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдИрд╕реАрдПрдордПрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рдХреНрд╖реНрдп рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рд╣реИ, рдЬреЛ рд╕рдВрдХрд▓рдХ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ, рдЕрдиреБрдордд рдорд╛рди 'es3', 'es5', 'es2015', 'es2016', 'es2017' рдпрд╛ 'рд╣реИрдВред рдПрд╕рдиреЗрдХреНрд╕реНрдЯ'ред

рдХреНрдпреЛрдВрдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ, рдпрд╣ рд╕рдм рдХреБрдЫ рдПрдХ рд╕рд╛рде рд░рд┐рдлреИрдХреНрдЯрд░ рдХрд░рдиреЗ рдХреЗ рдмрдбрд╝реЗ рд╕рд┐рд░рджрд░реНрдж рдХреЗ рдмрд┐рдирд╛ рдЙрддреНрддрд░реЛрддреНрддрд░ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИред рдпрд╣ рдзреАрд░реЗ-рдзреАрд░реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╕рдореБрджрд╛рдп рджреНрд╡рд╛рд░рд╛ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред ES6 рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдпрд╣рд╛рдВ рдЬреЛ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ, рдЙрд╕рд╕реЗ рдЕрдзрд┐рдХ рдХрд╛рдо рдирд╣реАрдВ рд╣реИред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореИрдВ рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдпрд╣рд╛рдВ рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддрд╛ рд╣реВрдВред

рдорд╣рд╛рди рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЦреЗрд▓ рдХрд╛ рдореИрджрд╛рди рд▓рд┐рдВрдХ рджреЗрдЦреЗрдВ:

@joejordanbrown

рдХреНрдпрд╛ рдЖрдк рдХрд┐рд╕реА рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрд╕реЗ рдЕрд╕рд╣рдордд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?

рдпрджрд┐ рдЖрдк Google рдореЗрдВ typescript vs рдЯрд╛рдЗрдк рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреБрдЫ рд╢рдмреНрдж рдкреЙрдк рдЕрдк рд╣реЛрддреЗ рд╣реИрдВ, рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдлрд╝реНрд▓реЛ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдХрд░рдиреЗ рдкрд░, рдХрдИ рд▓реЗрдЦ рдорд┐рд▓рддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рд▓реЛрдЧ рдЗрди рджреЛрдиреЛрдВ рдХреЗ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдФрд░ рд╡рд┐рдкрдХреНрд╖реЛрдВ рдкрд░ рдмрд╣рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХреЛ рдЪреБрдирдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреЛрдИ рднреА рдкреНрд░рдХрд╛рд░ рдЕрдзрд┐рдХ рд╕рдордЭреМрддрд╛ рдЬреИрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ред

рдЙрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд╣реЗрдЬреЗрдВ рдЬреЛ рдЙрдирдХреЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рдкрд░рд┐рдгрд╛рдо рд╕реЗ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИрдВ - рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдлрд╝реНрд░рдВрдЯрдПрдВрдб рдлрд╝реНрд░реЗрдорд╡рд░реНрдХ рдЬрд┐рдиреНрд╣реЗрдВ рдкрд╣рд▓реЗ HTML рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛ред рдореЗрд░рд╛ рдореВрд▓ рдмрд┐рдВрджреБ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░реЛрдЧ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдирд╛ рдерд╛, рди рдХрд┐ рдЗрд╕реЗ рдФрд░ рдЦрд░рд╛рдм рдХрд░рдирд╛ред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд▓рдЧрднрдЧ рдЦрд┐рд▓реМрдирд╛ рднрд╛рд╖рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдХрднреА-рдХрднреА рддреАрди.рдЬреЗрдПрд╕ рдЬреИрд╕реЗ рдЬрдЯрд┐рд▓ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡реНрдпрд░реНрде рд╣реИред

6 рд╕рд┐рддрдВрдмрд░, 2017 рдХреЛ рджреЛрдкрд╣рд░ 1:55 рдмрдЬреЗ, рдЬреЛ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:

@mrdoob

рдореИрдВ рдпрд╣ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧ рди рдХрд░рдиреЗ рдХреЗ рд╡реИрдз рдХрд╛рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реЗ рд╕реАрдзреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдирд╣реАрдВ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХреЛрдб рдХреА рд╕рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░рдг рдЖрдк рдЗрд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдирд╣реАрдВ рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ рдЬреЛ рдХреЗрд╡рд▓ рд╕рдордп рдХреА рдЬрд╛рдБрдЪ рдХреЗ рд╕рдВрдХрд▓рди рдХреЗ рд▓рд┐рдП рд╣реИред рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд░рдирдЯрд╛рдЗрдо рдЬрд╛рдБрдЪ рднрд╛рд╖рд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЗрд╕реЗ рдХрднреА рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ рдХрд┐ рд╕рднреА рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рдХреЛрдб рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рддрдм рд╡реИрдирд┐рд▓рд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рд╣реЛрдЧрд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдПрдХ рдЯрд╛рдЗрдк рдХреА рдЧрдИ рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдФрд░ рдмрдбрд╝реЗ рдХреЛрдб рдмреЗрд╕ рдореЗрдВ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд▓рд╛рднреЛрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдпрд╛рдж рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЖрдк рдЕрднреА рднреА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдкреВрд░рд╛ рдмрд┐рдВрджреБ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╕реБрдкрд░рд╕реЗрдЯ рд╣реИред рдЖрдк рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдИрд╕реАрдПрдордПрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рдХреНрд╖реНрдп рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рд╣реИ, рдЬреЛ рд╕рдВрдХрд▓рдХ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ, рдЕрдиреБрдордд рдорд╛рди 'es3', 'es5', 'es2015', 'es2016', 'es2017' рдпрд╛ 'рд╣реИрдВред рдПрд╕рдиреЗрдХреНрд╕реНрдЯ'ред

рдХреНрдпреЛрдВрдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ, рдпрд╣ рд╕рдм рдХреБрдЫ рдПрдХ рд╕рд╛рде рд░рд┐рдлреИрдХреНрдЯрд░ рдХрд░рдиреЗ рдХреЗ рдмрдбрд╝реЗ рд╕рд┐рд░рджрд░реНрдж рдХреЗ рдмрд┐рдирд╛ рдЙрддреНрддрд░реЛрддреНрддрд░ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИред рдпрд╣ рдзреАрд░реЗ-рдзреАрд░реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╕рдореБрджрд╛рдп рджреНрд╡рд╛рд░рд╛ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред ES6 рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдпрд╣рд╛рдВ рдЬреЛ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ, рдЙрд╕рд╕реЗ рдЕрдзрд┐рдХ рдХрд╛рдо рдирд╣реАрдВ рд╣реИред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореИрдВ рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдпрд╣рд╛рдВ рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддрд╛ рд╣реВрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЦреЗрд▓ рдХрд╛ рдореИрджрд╛рди рд▓рд┐рдВрдХ рджреЗрдЦреЗрдВ:

рдХреНрд▓рд╛рд╕рд┐рдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЙрджрд╛рд╣рд░рдг
рдЙрджрд╛рд╣рд░рдг рдЬреЛрдбрд╝рдирд╛
рддреНрд░реБрдЯрд┐ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдкреНрд░рдХрд╛рд░ рдЬреЛрдбрд╝рдирд╛
рдХрдХреНрд╖рд╛ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рддреНрд░реБрдЯрд┐ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рд╕реВрддреНрд░ рдХреЛ рд▓рд┐рдЦрд╛ рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ, рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВред

^ рдореИрдВ рд░рд╛рдХреНрд╖рд╕реА рдкреИрдЯрд░реНрди рдХреЗ рд╕рд╛рде рднреА рдареАрдХ рд░рд╣реВрдВрдЧрд╛, рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рд╕реБрд╕рдВрдЧрдд рд╣реИред

@joejordanbrown рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдЖрдк рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдкреНрдпрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдлреЛрд░реНрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рдкреЛрд░реНрдЯ рдХрд░реЗрдВред рдереНрд░реА.рдЯреАрдПрд╕! рдореИрдВ

@ рдкреЗрд▓рд╣реЗрдб

рдпрд╣ рдкрд╕рдВрдж рдХреА рдмрд╛рдд рд╣реИ, рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдХрдИ рд╕рд╣рдордд рдФрд░ рдЕрд╕рд╣рдордд рд╣реЛрдВрдЧреЗ, рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд╣реИ рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рд╣реА рд╣реИ! рдЖрдк рд╣рдореЗрд╢рд╛ "рдпрд╣ рдмрдирд╛рдо рд╡рд╣", "рдореЗрд░рд╛ рддреБрдорд╕реЗ рдмреЗрд╣рддрд░ рд╣реИ" рджреЗрдЦрдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рдЕрдкрдиреЗ рдлрд╛рдпрджреЗ рд╣реИрдВред рдпрд╣ рдЙрдкрд▓рдмреНрдз рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рддреМрд▓рдиреЗ рдФрд░ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╡реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд▓рд╛рдн рдкрд╣реБрдВрдЪрд╛ рд╕рдХрддреЗ рд╣реИрдВред рддреБрд▓рдирд╛ рдХрд░рдирд╛ рдЕрдЪреНрдЫреА рдмрд╛рдд рд╣реИ, рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдФрд░ рдЖрдЧреЗ рдмрдврд╝рд╛рддрд╛ рд╣реИред

рдЖрдк рдлреНрд▓реЛ рдХрд╛ рдЬрд┐рдХреНрд░ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд╕рдорд╕реНрдпрд╛рдПрдВ рдореБрдЭреЗ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИрдВ рд╡реЗ рд╣реИрдВ:

  • рдлреНрд▓реЛ рд▓рд╛рдЗрд╕реЗрдВрд╕рд┐рдВрдЧ рдмреАрдПрд╕рдбреА 3-рдХреНрд▓реЙрдЬ " рдлреЗрд╕рдмреБрдХ рдмреАрдПрд╕рдбреА + рдкреЗрдЯреЗрдВрдЯ рд▓рд╛рдЗрд╕реЗрдВрд╕ " рд╣реИ, рдЕрдкрд╛рдЪреЗ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдлрд╛рдЙрдВрдбреЗрд╢рди рдиреЗ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЗрд╕ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз рд▓рдЧрд╛ рджрд┐рдпрд╛ рд╣реИред рдЖрдк рдпрд╣рд╛рдВ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред

  • рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЖрдИрдбреАрдИ рд╕рдорд░реНрдерди рдХреА рдХрдореА рд╣реИред

  • рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрдзрд╛рд░ рдЫреЛрдЯрд╛ рд╣реИ,

  • рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдЯрдВрдХрдг рдЕрдкреВрд░реНрдг рд╣реИрдВ, рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЕрдиреБрд░рдХреНрд╖рд┐рдд рдЯрдВрдХрдг рд╣реИрдВред

  • рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдФрд░ рд╕рдВрд╕рд╛рдзрди рдЦреЛрдЬрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдФрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрд╕реНрдкрд╖реНрдЯ рд╣реИрдВ рдЖрдкрдХреЛ рдмреЗрд╣рддрд░реАрди рджрд╕реНрддрд╛рд╡реЗрдЬрд╝, рдХрд┐рддрд╛рдмреЗрдВ, рд╡реАрдбрд┐рдпреЛ рдФрд░ рдмрд╣реБрдд рд╕реЗ рдЕрдиреНрдп рдИ-рд▓рд░реНрдирд┐рдВрдЧ рд╕рдВрд╕рд╛рдзрди рдорд┐рд▓реЗрдВрдЧреЗред

  • рдлрд╝реНрд▓реЛ .js рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ // @flow рдХреЗ рд╕рд╛рде рдлрд╝реНрд▓реИрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк .js рдПрдХреНрд╕рдЯреЗрдВрд╢рди рджреЗрдЦрддреЗ рд╣реИрдВ рдЗрд╕рд▓рд┐рдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░реЗрдВ рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдлрд╝реНрд▓реЛ рдЯрд╛рдЗрдк рд╣реИред рдЬрд╣рд╛рдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ .ts ред рдпрд╣ рдЖрдкрдХреЛ рдПрдХ рд╣реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕рдорд╛рди рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рдЫреЛрдЯреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдЖрджрд░реНрд╢ рд╣реИ, рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдпрд╣ рдПрдХ рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрдк рдПрдХ рдмрд┐рд▓реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реЛрдВрдЧреЗ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдгрд╛рд▓реАред

рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЧреВрдЧрд▓ рднреА рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рд╕рдорд░реНрдерди рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЬреЛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЙрдирдХреЗ рдЖрддреНрдорд╡рд┐рд╢реНрд╡рд╛рд╕ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред рдкреЛрд╕реНрдЯ рдпрд╣рд╛рдБ рдпрд╛ рдпрд╣рд╛рдБ рдкрдврд╝реЗрдВред

рдорд╛рд░реНрдЪ 2017 рддрдХ рдЕрдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХреНрд▓рд╛рдЗрдВрдЯ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдЕрдиреБрдорддрд┐ рд╣реЛ рдЧрдИ рд╣реИред рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдПрдВрдЧреБрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ Google Analytics, рдлрд╛рдпрд░рдмреЗрд╕ рдФрд░ Google рдХреНрд▓рд╛рдЙрдб рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЖрдВрддрд░рд┐рдХ рдЯреВрд▓ рдЬреИрд╕реЗ рдмрдЧ рдЯреНрд░реИрдХрд┐рдВрдЧ, рдХрд░реНрдордЪрд╛рд░реА рд╕рдореАрдХреНрд╖рд╛ рдФрд░ рдЙрддреНрдкрд╛рдж рдЕрдиреБрдореЛрджрди рдФрд░ рд▓реЙрдиреНрдЪ рдЯреВрд▓ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдЕрднреА рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдореИрдВ рдПрдХ рдЯрд╛рдЗрдк рдХреА рдЧрдИ рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдЦреЛрд▓реВрдВрдЧрд╛ рдФрд░ рджреЗрдЦреВрдВрдЧрд╛ рдХрд┐ рд╣рд░ рдХреЛрдИ рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╕реЛрдЪрддрд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ @mrdoob рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рдмрд┐рд▓реНрдХреБрд▓ рдЦрд┐рд▓рд╛рдл рд╣реИрдВред


@arctwelve
рдореИрдВ рдпрд╣ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХрд┐ рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреИрд╕реЗ рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЯрд╛рдЗрдк рдХреА рдЧрдИ рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдпрд╣ рдХреИрд╕реЗ рдирдХрд╛рд░рд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрдЧреАред


@mrdoob
рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ, рдореИрдВ рдХреЗрд╡рд▓ рдЙрди рд▓рд╛рднреЛрдВ рдХреЛ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдЬреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ ES6 рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ рд╢рд╛рдЦрд╛ рдмрдирд╛рдИ рдЬрд╛ рд░рд╣реА рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рддреАрди.рдЯреАрдПрд╕ рдирд╛рдордХ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдХрд╛рдВрдЯрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд╕рд╛рде рдЬрд╡рд╛рдм рджреЗрдирд╛ рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рд╣реИред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫреЗ рдУрдПрд╕рдПрд╕ рдкреНрд░рдерд╛рдУрдВ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╣реИ рдпрджрд┐ рд╣рд░ рдХреЛрдИ рд╕рд┐рд░реНрдл рдУрдПрд╕рдПрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдлреЛрд░реНрдХ рдХрд░рддрд╛ рд╣реИ рдФрд░ 1 рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдмрдирд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЦрд░рд╛рдм рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдпрд╛ рд╕рдореБрджрд╛рдпреЛрдВ рдХреЗ рд╡рд┐рднрд╛рдЬрди рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ рдФрд░ рдХрд┐рд╕реА рднреА рдХрд╛рд░рдг рд╕реЗ рд╡реЗ рдЬрд┐рд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ рдЙрд╕ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВрдЧреЗред рдЖрдк рдкреЗрд╢реЗрд╡рд░реЛрдВ рдФрд░ рд╡рд┐рдкрдХреНрд╖реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЦреБрд▓реА рдЪрд░реНрдЪрд╛ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ?

рдбреЗрд╡рд┐рд▓реНрд╕ рдПрдбрд╡реЛрдХреЗрдЯ рдХреА рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдЙрд╕рдиреЗ рдХрд┐рдпрд╛ рдерд╛

рдЦреБрд▓реА рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВ

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЫреЛрдЯрд╛ рдерд╛ :)

рдореИрдВ рдПрдХ рд╕рдорд╛рди рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕рд╛рдЭрд╛ рдХрд░рддрд╛ рд╣реВрдВ, рдпрд╣ рдПрдХ рдЬреЗрдПрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ рдФрд░ рдЬреЗрдПрд╕ рдорд╛рдирдХреАрдХреГрдд рд╣реИред рдЖрдк JS рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП JS рдЪреБрдирдиреЗ рдореЗрдВ рдЧрд▓рдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ, рдЬрдмрдХрд┐ рдпрджрд┐ рдЖрдк рдХреБрдЫ рдФрд░ рдЪреБрдирддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рдлреНрд▓реЛ рдХреЛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдпрд╛, рдЕрдЧрд░ рдЕрдиреНрдп рд╣реИрдВ рддреЛ рдкрддрд╛ рдирд╣реАрдВред

рд╡реИрд╕реЗ рднреА, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд┐рд╖рдп рд╕реЗ рд╣рдЯ рдЧрдП рд╣реИрдВред

Mugen87 рдиреЗ рд╕реЗ рд╢реАрд░реНрд╖рдХ рдмрджрд▓ рджрд┐рдпрд╛
ES6 рд╡рд░реНрдЧреЛрдВ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП JavaScript рд░реЛрдЧ рдирд┐рдХрд╛рд▓реЗрдВ

рдореВрд▓ рд╢реАрд░реНрд╖рдХ (рдЬрд╣рд╛рдБ рддрдХ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдБ) рд╢реИрд▓реА рдХреА рдПрдХрд░реВрдкрддрд╛ рдХреА рдХрдореА рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХреБрдЫ рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ Object.assign() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рдФрд░ рдЕрдиреНрдп рдореЗрдВ рдПрдХ рдЕрдиреНрдп рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред
рдЕрдЧрд░ рдореИрдВ рдпрд╣рд╛рдВ рдХреБрдЫ рднреА рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рд╡рд░реНрддрдорд╛рди рд╢реАрд░реНрд╖рдХ рд╣реЛрдЧрд╛ред рдПрдХ рдирдИ рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдореЗрдВ рдирд┐рд░рдВрддрд░рддрд╛ рдХрд╛ рдореБрджреНрджрд╛ рдХреНрдпреЛрдВ рдЙрдард╛рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ es6 рджреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде, рдХреЛрдб рдХрд╛рдлреА рд╕реБрд╕рдВрдЧрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВ рдЗрд╕ рдкреГрд╖реНрда рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдХреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░реВрдВрдЧрд╛:

https://github.com/mrdoob/three.js/wiki/Mr.doob 's-Code-Style%E2%84%A2

рдФрд░ рдпрд╛ рддреЛ рдЬреЛрдбрд╝рдирд╛:

рдП) "... рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВ ..."
рдмреА) "... рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВред рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВ"

рдкреВрд░реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдПрдХ рд╢реИрд▓реАред рдЗрд╕реЗ рдмрджрд▓рдиреЗ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИред

рд╡рдлрд╛рджрд╛рд░ рджреЛ рдкрдВрдХреНрддрд┐ рд╢реИрд▓реА рдЕрднреА рднреА, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рд╛рдордЧреНрд░реА рд╡рд░реНрдЧ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рдФрд░ рдХреНрд▓реАрдирд░ рд╣реИрдВред

рдпрд╣ рдкрд╣рд▓реА рдкреЛрд╕реНрдЯ рдореЗрдВ рд╣реИред

рдореИрдВ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдБ:

  1. рдЗрд╕ рд╡рд╛рдХреНрдп рдХреЛ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реАрд░реНрд╖рдХ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ, рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдПрдХ рд╢реИрд▓реА рд░рдЦрдиреЗ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВ, рд╢реИрд▓реА рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ рдЖрджрд┐ред
  2. "ES6 рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░реЗрдВ" рд╢реАрд░реНрд╖рдХ рд╕реЗ рдПрдХ рдирдИ рдЪрд░реНрдЪрд╛ рд╢реБрд░реВ рдХрд░реЗрдВ, рдЬрд╣рд╛рдВ es6 рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
  3. "рдПрдХ рдЯрд╛рдЗрдк рдХреА рдЧрдИ рднрд╛рд╖рд╛ рдореЗрдВ рддреАрди рд▓рд┐рдЦрд┐рдд рд╣реЛрдиреЗ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░реЗрдВ" рд╢реАрд░реНрд╖рдХ рд╕реЗ рдПрдХ рдирдИ рдЪрд░реНрдЪрд╛ рд╢реБрд░реВ рдХрд░реЗрдВ, рдЬрд╣рд╛рдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреА рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреА

рд╡реИрд╕реЗ рднреА, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд┐рд╖рдп рд╕реЗ рд╣рдЯ рдЧрдП рд╣реИрдВред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВред @joejordanbrown рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рд╡рд┐рд╖рдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред

рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ, рдкрд┐рдЫрд▓реА рдмрд╛рддрдЪреАрдд рдХреЛ рдирдЬрд╝рд░рдЕрдВрджрд╛рдЬрд╝ рдХрд░рдирд╛ рдУрдПрд╕рдПрд╕ рдЕрднреНрдпрд╛рд╕ рднреА рдЦрд░рд╛рдм рд╣реИ... https://github.com/mrdoob/three.js/issues/341#issuecomment -47000692

рд╡рд┐рд╖рдп рдкрд░ рд╡рд╛рдкрд╕ред рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╕реБрд▓рдЭрд╛ рд▓рд┐рдпрд╛ рд╣реИ?

https://github.com/mrdoob/three.js/issues/11552#issuecomment -319449068

рд╣рдореЗрдВ рдмрд╕ рдЗрд╕реЗ рдЖрдЬрдорд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдХреА рдЬрд░реВрд░рдд рд╣реИред

рдареАрдХ рд╣реИ... рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ

рдкрд╣рд▓рд╛ рдкреИрдЯрд░реНрди (рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдЖрдИрдПрдордУ):

function MyClass() {...}

MyClass.prototype = Object.assign( Object.create( MyClassToInherit.prototype ), {

    constructor: MyClass,

    prop1: 'something',

    method1: function someFunction() { .. },

    ...

});

рджреВрд╕рд░рд╛ рдкреИрдЯрд░реНрди:

function MyClass() {...}

MyClass.prototype = Object.create( MyClassToInherit.prototype );

MyClass.prototype.constructor = PointLight;

MyClass.prototype.prop1 = 'something';

MyClass.prototype.method1 = function someFunction() { .. };

...

@arctwelve рдпрд╣ рдкреИрдЯрд░реНрди рдХрдИ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рд╣рд╕реНрддрдореИрдереБрди рдирд╣реАрдВ рд╣реИ!

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдпрд╣ рд╡рд╕реНрддреБ рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рдкрдврд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╡рд╕реНрддреБ рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ Object.assign рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдпрд╣рд╛рдВ рд╣реИред рдлрд┐рд░ рдЖрдк рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рд╡рд╕реНрддреБ рдХреЛ MyClass.prototype рдХреА рдХрдИ рдФрд░ рдХрдИ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдирд╣реАрдВ рдЦреЛ рд╕рдХрддреЗ рд╣реИрдВред
рджреВрд╕рд░рд╛, рдПрдХрд╛рдзрд┐рдХ рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рднреА рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд╣реИред
рддреАрд╕рд░рд╛, рд╡рд░реНрдЧ рдХрд╛ рдирд┐рд░реНрдорд╛рддрд╛ рдкрдардиреАрдп рд╣реИ рдФрд░ рдкрд╣рд▓реЗ рдмрд┐рдВрджреБ рдХреА рддрд░рд╣ рдХрдИ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдирд╣реАрдВ рдЦреЛрддрд╛ рд╣реИред
рдЪреМрдерд╛, рдпрд╣ рдПрдХ рд╣реА рд╕реНрдерд╛рди (рдмреНрд░реИрдХреЗрдЯ рдХреЗ рдЕрдВрджрд░) рдореЗрдВ рдЧреБрдгреЛрдВ рдФрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╕рдореВрд╣рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ 3, 4, 5 ... рдЖрджрд┐ рдХрдХреНрд╖рд╛рдПрдВ рд╣реЛрдиреЗ рдкрд░ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд╣реИред
рдкрд╛рдВрдЪрд╡рд╛рдВ, рдпрд╣ рдкреИрдЯрд░реНрди рдХреБрдЫ "рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА" рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдЕрдВрдд рдореЗрдВ ( @looeee ), рдпрд╣ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рднреА рд╣реИред рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЗ рд▓рд┐рдП рдПрдХрд╛рдзрд┐рдХ рдФрд░ рдПрдХрд╛рдзрд┐рдХ рдХреЙрд▓ рдХреЗ рдмрдЬрд╛рдп рдлрд╝рд╛рдЗрд▓ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рд╣реЛрдиреЗ рдкрд░ рдкрд╣рд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг рдЕрдзрд┐рдХ рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИред

рд╡реИрд╕реЗ рднреА !

рдЖрдЬрдХрд▓, рд╣рдореЗрдВ ES6 рд╕рд┐рдВрдЯреИрдХреНрд╕ рдкрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП!

@mrdoob

рдореБрдЭреЗ рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛! рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ WebVR рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдореЗрд░реЗ рдЕрд▓рд╛рд╡рд╛ рдХреЛрдИ рдФрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╣рдореЗрдВ рдмрд╕ рдЗрд╕реЗ рдЖрдЬрдорд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдХреА рдЬрд░реВрд░рдд рд╣реИред

рдХреНрдпрд╛ рдЖрдк рдПрдХ es6 рд╢рд╛рдЦрд╛ рдмрдирд╛рдПрдВрдЧреЗ? рдпрд╛ рдпрд╣ рд╣рдорд╛рд░реЗ рджрдо рдкрд░ рд╣реИ?

рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЗ рд▓рд┐рдП рдПрдХрд╛рдзрд┐рдХ рдФрд░ рдПрдХрд╛рдзрд┐рдХ рдХреЙрд▓ рдХреЗ рдмрдЬрд╛рдп рдлрд╝рд╛рдЗрд▓ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рд╣реЛрдиреЗ рдкрд░ рдкрд╣рд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг рдЕрдзрд┐рдХ рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдЕрд╛рдкрдХреЛ рдЙрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрд░реНрдг рд╡рд┐рд╢рд╡рд╛рд╕ рд╣реИ? рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ Object.Assign рдзреАрдорд╛ рд╣реЛрдЧрд╛, рдЕрдЧрд░ рдХреБрдЫ рднреАред рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдкреНрд░рджрд░реНрд╢рди рдУрд╡рд░рд╣реЗрдб рд╣реИред

рдмрд┐рд▓реНрдХреБрд▓: https://jsperf.com/inline-prototype-vs-assign-prototype/1

рдХреНрд░реЛрдо рд╕рдВрд╕реНрдХрд░рдг 61.0.3163.100 рдХреЗ рддрд╣рдд (рдмрд┐рд▓реНрдб рдСрдлрд┐рд╕рд┐рдпрд▓) (64 рдмрд┐рдЯреНрд╕) рдЕрд╕рд╛рдЗрди рдХрд┐рдП рдЧрдП рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд▓рдЧрднрдЧ 60% рддреЗрдЬ рд╣реИрдВ

рджрд┐рд▓рдЪрд╕реНрдкред рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдкрд░рд┐рдгрд╛рдо рд╕рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдирд╣реАрдВ рд╣реИред рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдкрд░ рд╡реЗ рд▓рдЧрднрдЧ рд╕рдорд╛рди рд╣реИрдВ ( Object.Assign ~3% рддреЗрдЬ), рдЬрдмрдХрд┐ рдПрдЬ рдкрд░ Object.Assign ~33% рдзреАрдорд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ рдореБрдЭреЗ рдЕрднреА рднреА рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╢реИрд▓реА рдмреЗрд╣рддрд░ рд╣реИ - рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рд╕рдмрд╕реЗ рдзреАрдореА рд╕рдордЧреНрд░ (рдХреНрд░реЛрдо рдореЗрдВ рдЗрдирд▓рд╛рдЗрди рдкреНрд░реЛрдЯреЛ) рдЕрднреА рднреА рдПрдХ рд╕реЗрдХрдВрдб рдореЗрдВ> 180,000 рд╕рдВрдЪрд╛рд▓рди рдкрд░ рдЪрд▓ рд░рд╣реА рд╣реИ, рдФрд░ рд╢рд╛рдпрдж рдХреБрдЫ рд╣рдЬрд╛рд░ рд╣реИрдВ рдХреЛрдб рдореЗрдВ рдХрд┐рдП рдЧрдП рдпреЗ рд╕реЗрдЯрдЕрдкред рддреЛ рд╣рдо рдпрд╣рд╛рдВ рд╢рд╛рдпрдж рдХреБрдЫ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреЗ рдЕрдВрддрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдореЗрд░реЗ рд▓рд┐рдП, Object.Assign рд╢реИрд▓реА рд╕рд╛рдл-рд╕реБрдерд░реА рдФрд░ рдкрдврд╝рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рд╣реИ, рдФрд░ рдпрд╣реА рдЗрд╕рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдореБрдЦреНрдп рддрд░реНрдХ рд╣реИред

рд╣рд╛рдВ рдпрд╣ рдкреНрд░рддрд┐ рдлрд╝рд╛рдЗрд▓ рд▓рдЧрднрдЧ рдХреБрдЫ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рддрднреА рдЬрдм рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬрди рджреНрд╡рд╛рд░рд╛ рдкрд╣рд▓реА рдмрд╛рд░ рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ...
рд╕рд╛рдордиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП 3scd рдХреА рд╕реАрдорд╛ рдХреЛ рди рднреВрд▓реЗрдВ рдЬреЛ рдЕрдзрд┐рдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИрдВ!

рдореИрдВ рддреАрдиjs рдХреЗ рд╕рд╛рде рдХреЛрдгреАрдп рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдРрд╕рд╛ рд╣рдореЗрд╢рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рддреАрдиj рдХреЗ рд╣рд░ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рд╣реИрдХ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдпрд╣ рддреАрди рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рд╕рд╛рде es5 рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣реИ рдЬреЛ рдореМрдЬреВрдж рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдореБрдЭреЗ OrbitalControls рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рддреАрдиj рдЯрд╛рдЗрдкрд┐рдВрдЧ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╣реА рдкреИрдХреЗрдЬ рдореЗрдВ рд░рдЦрдирд╛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛ред рдЯрд╛рдЗрдкрд┐рдВрдЧ рдореЗрдВ OrbitalControls рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рдХреЗрд╡рд▓ import { OrbitalControls } from 'three; рдХреА рддрд░рд╣ рдЖрдпрд╛рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред
рд╡реЗрдмрдкреИрдХ рдореЗрдВ рдкреЗрдбрд╝ рд╣рд┐рд▓ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдИрдПрд╕ 6 рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдо рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдВрджрд░ рдЕрдкрдиреА рдЬрд░реВрд░рдд рдХреА рд╕рднреА рдЪреАрдЬреЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд▓реЗ рдЬрд╛ рд╕рдХрддреЗред
@mrdoob рддреЛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрддрдирд╛ рдЦрд░рд╛рдм рдХреНрдпреЛрдВ рд╣реИ? рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЗ рд╕рд╛рде ES рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдИ рдЕрдиреНрдп рдЪреМрдЦрдЯреЗ рдЬреИрд╕реЗ рд░рд┐рдПрдХреНрдЯ рдореЗрдВ рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

@FriOne рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ @mrdoob рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реЛрдЪрддрд╛ рд╣реИ рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЦрд░рд╛рдм рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдЗрд╕ рдореБрджреНрджреЗ/рдереНрд░реЗрдб рдореЗрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЗрд╕ рдзрд╛рдЧреЗ рдХрд╛ рд╡рд┐рд╖рдп рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ ES6 рдХрдХреНрд╖рд╛рдПрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЦрд┐рд▓рд╛рдл рдпрд╛ рдЙрд╕рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреА рд╣реИрдВред рдпрджрд┐ рдЖрдк рдХреЛрдбрдмреЗрд╕ рдХреЛ ES6 рдореЗрдВ рдмрджрд▓рддреЗ рд╣реИрдВ рддреЛ рдХреЛрдбрдмреЗрд╕ рдХреЛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдФрд░ рднреА рдЖрд╕рд╛рди рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдмрд╣реБрдд рд╕рдорд╛рди рд╣реИред рд╣рд╛рдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдИ рдирдП рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдПрдХ рдЕрдзрд┐рдХ рдЕрдиреБрдХреВрд▓рд┐рдд рдХреЛрдб рдХреЛ "рдЯреНрд░рд╛рдВрд╕рдкрд╛рдЗрд▓" рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рдирдП рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рддреЗрдЬреА рд╕реЗ рд╕реАрдЦрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рд╢рд╛рдпрдж рдпрд╣ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рджрд░рд╡рд╛рдЬреЗ рдЦреЛрд▓рддрд╛ рд╣реИ рдЬреИрд╕реЗ: https://github.com/AssemblyScript/assemblyscriptред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рд╕рд╛рд░реЗ рдлрд╛рдпрджреЗ рд╣реИрдВ @joejordanbrown рдиреЗ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рд╡рд┐рд╖рдп рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВ: рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ ES6 рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдЕрдкрдирд╛рдирд╛ рдПрдХ рдХрджрдо рдЖрдЧреЗ рд╣реЛрдЧрд╛ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪреАрдЬрд╝ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рддреЛ рдЪрд▓рд┐рдП рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рдмрд╛рдж рдПрдХ рдХрджрдо рдмрдврд╝рд╛рддреЗ рд╣реИрдВ

@tschoartschi , рд╕реЛрдЪреЗрдВ рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ es6 рдХрдХреНрд╖рд╛рдУрдВ рдФрд░ рдЕрдиреНрдп рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХрд╛ рдРрд╕рд╛ рдЕрдиреБрднрд╡ рдирд╣реАрдВ рд╣реИ, рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЧрд▓рдд рд╣реВрдВред

@FriOne рдпрд╣ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕рдВрдХрд▓рдХ рдЖрдкрдХреЛ рдЖрдкрдХреА рд╕рднреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдФрд░ рдЧрд▓рддрд┐рдпреЛрдВ рдХреЛ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рдкреВрд░реА рдмрд┐рд▓реНрдб рдкрд╛рдЗрдк рд╕реЗрдЯ рдЕрдк рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдХреЛ рдпрд╣ рдЖрдХрд▓рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд╣реА рдлрд┐рдЯ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ ES6 рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░рдирд╛ рдФрд░ рдлрд┐рд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдирд╛ рдареАрдХ рд╣реИред

рдЕрд░реЗ, рд╣рдо KTH рдХреЗ 5 рдЫрд╛рддреНрд░реЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рд╣реИрдВ рдЬреЛ рдПрдХ рдХреЛрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдпреЛрдЧрджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдПрдХ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдирдП ES6 рд╕рд┐рдВрдЯреИрдХреНрд╕ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдореИрдВрдиреЗ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде, рдкреНрд░реВрдл-рдСрдл-рдХреЙрдиреНрд╕реЗрдкреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ (r82) рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рддреАрди.рдЬреЗрдПрд╕ рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдерд╛ред

https://github.com/flyover/three.ts

рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рд▓реЛрдб рд╣реЛрдиреЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрд░реЛрдд рдордХреНрдЦреА рдкрд░ рдЯреНрд░рд╛рдВрд╕рдкрд╛рдЗрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЯреНрд░рд╛рдВрд╕рдкрд┐рд▓реНрдб рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╡реЗ рдореВрд▓ рд░реВрдк рд╕реЗ рдЙрддрдиреА рд╣реА рддреЗрдЬреА рд╕реЗ рд▓реЛрдб рд╣реЛрддреЗ рд╣реИрдВред

рдореИрдВ рддреАрди.рдЬреЗрдПрд╕ рдХреЛ рдЯрд╛рдЗрдкрдкреНрд░рддрд┐ рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд░рддреЗ рд╣реБрдП рджреЗрдЦрдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЕрдЧрд▓реА рд╡реЗрдм рдкреАрдврд╝рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдордп рдХреА рдХрд╕реМрдЯреА рдкрд░ рдЦрд░рд╛ рдЙрддрд░рдирд╛ рд╣реИ рддреЛ рдЗрд╕рдХреЗ рдЖрдзреБрдирд┐рдХреАрдХрд░рдг рдХреА рд╕рдЦреНрдд рдЬрд░реВрд░рдд рд╣реИред рдПрдХ рджрд┐рди, рд╣рдо рдЗрд╕реЗ рдЕрд╕реЗрдВрдмрд▓реАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реБрдП рдФрд░ WASM рдореЗрдВ рдЪрд▓рддреЗ рд╣реБрдП рднреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдереНрд░реАрдЬ рдирд╣реАрдВ рддреЛ рдХреБрдЫ рдФрд░ рдЬрд░реВрд░ рд╣реЛрдЧрд╛ред

рдпрд╣ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ @WestLangley рдФрд░ @mrdoob

@bhouston рдпрд╣рд╛рдБ рдХреНрдпрд╛ рдирд┐рд╖реНрдХрд░реНрд╖ рд╣реИ?

@pkieltyka рд╣рд╛рдБ, рдореБрдЭреЗ рдпрд╣ рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдереНрд░реА.рдЬреЗрдПрд╕ рдЬреИрд╕реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИред рд╕рднреА рддрдХрдиреАрдХреА рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рднреА рдЖрд╕рд╛рди рдХрд░реЗрдЧрд╛ рдФрд░ рдирдП рд▓реЛрдЧреЛрдВ рдХреЛ рдПрдкреАрдЖрдИ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рд╕рднреА ES6 рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛ рдФрд░ рдлрд┐рд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдирд╡реАрдирддрдо рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рдХрд╛рд░ рдЬреЛрдбрд╝рдирд╛ рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИред

@flyover рднреА рдереНрд░реА.рдЬреЗрдПрд╕ рдХреЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░реВрдл-рдСрдл-рдХреЙрдиреНрд╕реЗрдкреНрдЯ рджреЗрдЦреЗрдВред рдХреНрдпрд╛ рдЖрдкрдХреЛ Three.js рдХреЗ рдЕрдиреБрд░рдХреНрд╖рдХреЛрдВ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдорд┐рд▓реА?

рдореИрдВ рддреАрди.рдЬреЗрдПрд╕ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рднреА рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реВрдВред рдЯрд╛рдЗрдкрд╕рд░реНрдкреНрдЯ рдореВрд▓ рд░реВрдк рд╕реЗ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ
рдЕрднреНрдпрд╛рд╕ рдФрд░ рдХрдЪреНрдЪреА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдм рдФрд░ рдирд╣реАрдВ рд╣реИред

рд╢рдирд┐рд╡рд╛рд░, 5 рдЬрдирд╡рд░реА 2019, 4:13 рдкреВрд░реНрд╡рд╛рд╣реНрди рдХреЛ

@pkieltyka https://github.com/pkieltyka рд╣рд╛рдБ рдореБрдЭреЗ рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ
рдереНрд░реА.рдЬреЗрдПрд╕ рдЬреИрд╕реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИред рд╕рдм рдХреЗ рдЕрд▓рд╛рд╡рд╛
рддрдХрдиреАрдХреА рдкреЗрд╢реЗрд╡рд░реЛрдВ рд╕реЗ рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рднреА рдЖрд╕рд╛рди рдХрд░реЗрдЧрд╛ рдФрд░ рдирдП рд▓реЛрдЧреЛрдВ рдХреА рдорджрдж рдХрд░реЗрдЧрд╛
рдПрдкреАрдЖрдИ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдПред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рднреА ES6 рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ
рдкрд╣рд▓реЗ рд╕рд╛рдорд╛рди рд▓реЗрдВ рдФрд░ рдлрд┐рд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдирд╡реАрдирддрдо рд╕реЗ
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рдХрд╛рд░ рдЬреЛрдбрд╝рдирд╛ рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИред

@flyover https://github.com/flyover рднреА рдЕрдЪреНрдЫрд╛ рд╣реИ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреНрд░реВрдл-рдСрдлрд╝-рдХреЙрдиреНрд╕реЗрдкреНрдЯ рджреЗрдЦреЗрдВ
Three.js рдХрд╛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрд╕реНрдХрд░рдгред рдХреНрдпрд╛ рдЖрдкрдХреЛ рдЕрдиреБрд░рдХреНрд╖рдХреЛрдВ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдорд┐рд▓реА?
рдереНрд░реА.рдЬреЗрдПрд╕ рдХрд╛?

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/mrdoob/three.js/issues/11552#issuecomment-451639995 ,
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AAj6_bkdND7I0_F4AJcBV0DYLpToUIVhks5vAGykgaJpZM4N9vH8
.

@bhouston рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рдмреЗрд╣рддрд░реАрди рддрдХрдиреАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рддрд░реАрдХреЗ рд╕реЗ рдирд╣реАрдВ рд░рдЦреВрдВрдЧрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рд╣рдореЗрд╢рд╛ рдХрдЪреНрдЪреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рдХрд░реАрдм рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╢реАрд░реНрд╖ рдкрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЪреВрдВрдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрдкреЗрдХ рдХрд╛ рдмрд╣реБрдд рдмрд╛рд░реАрдХреА рд╕реЗ рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реИ, рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ ES6 рдХреА рддрд░рд╣ рдЯрд╛рдЗрдк рдХреЗ рд╕рд╛рде рдкрдврд╝рддрд╛ рд╣реИред

рддреАрди.рдЬреЗрдПрд╕ рдЬреИрд╕реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдлрд╛рдпрджреЗрдордВрдж рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдзреАрд░реЗ-рдзреАрд░реЗ рдЕрдкрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ "рдмрд┐рдЧ-рдмреИрдВрдЧ" рдкреБрдирд░реНрд▓реЗрдЦрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рднреА ES6 рд░рд┐рдлреИрдХреНрдЯрд░ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдирд╣реАрдВред

рдпрд╣ рд╕реБрдирдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ @mrdoob рдХрд╛ рд░реБрдЦ рдмрджрд▓ рдЧрдпрд╛ рд╣реИред рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ "рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ" рдХреЗ рд▓рд┐рдП "рдбрд┐рдлреИрдХреНрдЯреЛ" рдорд╛рдирдХ рдмрди рдЧрдпрд╛ рд╣реИ (рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореИрдВрдиреЗ рдЕрдкрдиреЗ рджрд╛рд╡реЛрдВ рдХреЛ рдПрд╕реНрдЯреНрд░реЛрдлрд╝реЗ рдХреЗ рддрд╣рдд рд░рдЦрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреЛрдИ рдХрдард┐рди рддрдереНрдп рдирд╣реАрдВ рд╣реИ)

рдкрд╣рд▓рд╛ рдХрджрдо ES6 рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдЕрдкрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрдХреНрд╖рд╛рдПрдВ, рдПрд░реЛ рдлрдВрдХреНрд╢рди, 'рд▓реЗрдЯ' рдФрд░ 'рдХреЙрдиреНрд╕реНрдЯ'ред

рдПрдХ рдмрд╛рд░ рдЬрдм рд╣рдо рдпрд╣ рдХрд░ рд▓реЗрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдорд░реНрдерди рдкрд░ рдареАрдХ рд╕реЗ рдЪрд░реНрдЪрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ @ рд░реВрдорд▓реЗ-рдмрд┐рд▓реНрдб рдмрддрд╛рддреЗ рд╣реИрдВ, рдпрджрд┐ рд╣рдо рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВ рддреЛ рдИрдПрд╕ 6 рдХреЛрдб рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдзреАрд░реЗ-рдзреАрд░реЗ рдЬреЛрдбрд╝рдирд╛ рдЖрд╕рд╛рди рд╣реИред

рджреЛрдиреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдХрд░рдиреЗ рд╕реЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЪреАрдЬреЛрдВ рдХреЛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдмрдирд╛ рджреЗрдЧрд╛ред

рдпрд╣ рд╕реБрдирдХрд░ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛ рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИ :-) рд╢рд╛рдпрдж рд╣рдо @flyover рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рд▓реЗрдХрд┐рди рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ @looeee рдкрд╣рд▓реЗ рд╕рднреА ES6 рд╕рд╛рдорд╛рди рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ рдЕрдЧрд▓реЗ рдЪрд░рдгреЛрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВ

рд╕рднреА ES6 рд╕рд╛рдорд╛рди рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ

рдореБрдЭреЗ рдЦреБрд╢реА рд╣реЛрдЧреА рдЕрдЧрд░ рд╣рдо рдХрдо рд╕реЗ рдХрдо рдЗрд╕реЗ рд╢реБрд░реВ рдХрд░ рд╕рдХреЗрдВ

рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдЖрдзрд╛ рдХрджрдо рдкреНрд░рддреНрдпреЗрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдмрдЧрд▓ рдореЗрдВ рдЯрд╛рдЗрдк рдлрд╛рдЗрд▓реЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рджреЛрдиреЛрдВ рд╣реЛрдВрдЧреЗ:

рд╡реЗрдХреНрдЯрд░3.рдЬреЗрдПрд╕
рд╡реЗрдХреНрдЯрд░3.d.ts

рдпрд╣ рд╣рдореЗрдВ рд╕рд╛рдЗрдбрдХрд╛рд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рднреА рд▓рд╛рдн рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рдЕрднреА рдПрдХ @ рдкреНрд░рдХрд╛рд░/рддреАрди рдлрд╝рд╛рдЗрд▓ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдкреБрд░рд╛рдиреА рд╣реИ рдФрд░ рдЕрд▓рдЧ рд╕реЗ рд░рдЦрд░рдЦрд╛рд╡ рдХреА рдЬрд╛рддреА рд╣реИ - рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдпрд╣ рд╣рдореЗрд╢рд╛ рдбреЗрдЯрд╛ рд╕реЗ рдмрд╛рд╣рд░ рд░рд╣реЗрдЧреАред

рдереНрд░реА.рдЬреЗрдПрд╕ рдХрд╛ рдореБрдЦреНрдп рдкреНрд░рддрд┐рдпреЛрдЧреА рдмреЗрдмреАрд▓реЙрдиреНрдЧ рд╣реИ рдФрд░ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдФрд░ рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЗрд╕рд╕реЗ рдЗрд╕реЗ рдлрд╛рдпрджрд╛ рд╣реЛрддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди @ рдЯрд╛рдЗрдкреНрд╕/рдереНрд░реА рдХреЛ рдорд╛рд░рдирд╛ рдФрд░ рдЗрд╕реЗ рд╕рд╛рдЗрдб рдХрд╛рд░ рдЯрд╛рдЗрдк рдбреЗрдлрд┐рдирд┐рд╢рди рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдереНрд░реА рдкреНрд░реЙрдкрд░ рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░рдирд╛ рдПрдХ рдмреЗрд╣рддрд░реАрди рдкрд╣рд▓рд╛ рдХрджрдо рд╣реЛрдЧрд╛ред

рд╣рдореЗрдВ рд╕рднреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ /src рдореЗрдВ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреЗрдбрд╝ рдХреЛ рд╣рд┐рд▓рд╛рдиреЗ рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЕрднреА Three.JS рдХреЗ рд▓рд┐рдП рдХреЛрдб рд╕рдВрд░рдЪрдирд╛ рдЗрддрдиреА 2014 рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╕ рдПрдХ рджрд░реНрдж рд╣реИред

рд╕рднреА рдЙрджрд╛рд╣рд░рдг?

рдЙрджрд╛рд╣рд░рдг/рдЬреЗрдПрд╕

рд╕реЛрдо, рдЬрдирд╡рд░реА 7, 2019, 10:25 рдкреВрд░реНрд╡рд╛рд╣реНрди рдкрд░ рджреБрд╕рд╛рди рдмреЛрд╕реНрдирдЬрдХ < рд╕реВрдЪрдирд╛рдПрдВ @github.com рдиреЗ рд▓рд┐рдЦрд╛:

рд╕рднреА рдЙрджрд╛рд╣рд░рдг?

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/mrdoob/three.js/issues/11552#issuecomment-451970482 ,
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AAj6_Q3Kakb5Qn2DqGbMVvLkW_28cOyaks5vA2b5gaJpZM4N9vH8
.

@рднреВрд╕реНрдЯрди

рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдЖрдзрд╛ рдХрджрдо рдкреНрд░рддреНрдпреЗрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдмрдЧрд▓ рдореЗрдВ рдЯрд╛рдЗрдк рдлрд╛рдЗрд▓реЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рджреЛрдиреЛрдВ рд╣реЛрдВрдЧреЗ:

рд╡реЗрдХреНрдЯрд░3.рдЬреЗрдПрд╕
рд╡реЗрдХреНрдЯрд░3.d.ts

рдХреНрдпрд╛ .d.ts рдлрд╝рд╛рдЗрд▓реЗрдВ c рдореЗрдВ .h рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░реЗрдВрдЧреА?

рдХреНрдпрд╛ .d.ts рдлрд╝рд╛рдЗрд▓реЗрдВ c рдореЗрдВ .h рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░реЗрдВрдЧреА?

рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╕рд╛рджреГрд╢реНрдп рд╣реИред рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдиреЗ рдЗрд╕рдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдпрд╣рд╛рдВ рдХрд┐рдпрд╛ рд╣реИ: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/three рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдХреЗрд╡рд▓ рдЗрди рдкреНрд░рдХрд╛рд░ рдХреА рдлрд╛рдЗрд▓реЛрдВ рдХрд╛ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рд▓реЗрдЧрд╛ рдФрд░ рдЗрд╕реЗ Three.js рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░реЗрдЧрд╛ред рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рд╣рдо рдПрдХ рдкреАрдЖрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕реЗ рддреАрди.рдЬреЗрдПрд╕ рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЙрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рддрдиреА рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИ, рджреЗрдЦреЗрдВ рдХрд┐ рдкреНрд░рддрд┐ рд╕рдкреНрддрд╛рд╣ рдХрд┐рддрдиреЗ @ рдкреНрд░рдХрд╛рд░/рддреАрди рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ:

https://www.npmjs.com/package/@types/three - рдкреНрд░рддрд┐ рд╕рдкреНрддрд╛рд╣ 63,000 рдбрд╛рдЙрдирд▓реЛрдбред

рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА!

рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рд╣рдо рдПрдХ рдкреАрдЖрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕реЗ рддреАрди.рдЬреЗрдПрд╕ рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЙрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддрд╛ рд╣реИред

рдореБрдЭреЗ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ

рдХреНрдпрд╛ рдПрд╕реНрд▓рд┐рдВрдЯ рдХреЗ рд╕рдорд╛рди рдХрдорд╛рдВрдбрд▓рд╛рдЗрди рдЬрд╛рдВрдЪ рдЪрд▓рд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реБрдП рдХрд┐ рдкреНрд░рдХрд╛рд░ рдХреА рдлрд╛рдЗрд▓реЗрдВ рдФрд░ рд╕реНрд░реЛрдд .js рдлрд╛рдЗрд▓реЗрдВ рд╕рдВрд░реЗрдЦрд┐рдд рд╣реИрдВ? рдпрджрд┐ рд╣рдо d.ts рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рд▓реЗ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ рдХрд┐ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реЛ рдХрд┐ рд╡реЗ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВред

рдпрд╣ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рддрдиреА рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИ, рджреЗрдЦреЗрдВ рдХрд┐ рдкреНрд░рддрд┐ рд╕рдкреНрддрд╛рд╣ рдХрд┐рддрдиреЗ @ рдкреНрд░рдХрд╛рд░/рддреАрди рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ:

https://www.npmjs.com/package/@types/three - рдкреНрд░рддрд┐ рд╕рдкреНрддрд╛рд╣ 63,000 рдбрд╛рдЙрдирд▓реЛрдбред

рдореИрдВ рдЗрд╕реЗ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЛрдб рдХреА рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдФрд░ рдЕрдзрд┐рдХ рд╢реНрд░реЗрдп рджреВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЖрдк рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдирдХреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреНрд░рдХрд╛рд░ рдЕрдзрд┐рдЧреНрд░рд╣рдг рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд░рддреЗ рд╣реИрдВред
рдпрд╛рдиреА рдЗрд╕реЗ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ред

@flyover @bunnybones1 @mrdoob @looeee @donmccurdy @bhouston @roomle-build @pkieltyka @FriOne @joejordanbrown рдЪреВрдВрдХрд┐ рдЖрдк рд╕рднреА рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдпрд╣ рдиреЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдореИрдВрдиреЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдмрдирд╛рдпрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рдЯреАрдПрд╕ рдЪрд░реНрдЪрд╛рдУрдВ рдХреЛ рд╡рд╣рд╛рдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдЗрд╕реЗ рдпрд╣рд╛рдВ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ: https://github.com/mrdoob/three.js/issues/15545

рдореИрдВ ES6 рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рджреЗрдиреЗ рдХреЛ рддреИрдпрд╛рд░ рд╣реВрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдХ рджрд┐рди рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рдмреНрд░рд┐рдЬ рд╕рдорд╛рдзрд╛рди рд╣реЛрдЧрд╛ред

рдкрд╣рд▓рд╛ рдХрджрдо рдХреБрдЫ рдРрдб-рдСрди рдХреЛ ES6 рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реИред

https://github.com/mrdoob/three.js/tree/dev/examples/jsm

рдирд┐рдпрдВрддреНрд░рдг, рд▓реЛрдбрд░ рдФрд░ рдирд┐рд░реНрдпрд╛рддрдХ рдЕрдЪреНрдЫреЗ рдЙрдореНрдореАрджрд╡рд╛рд░ рд╣реИрдВред рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ!

@mrdoob рд╕рд┐рд░реНрдл рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХрд╛ рдорддрд▓рдм рдЙрдиреНрд╣реЗрдВ ES рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдЕрдиреНрдп ES6 рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ, рд╣реИ рдирд╛?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд░реВрдкрд╛рдВрддрд░рдг рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ:

  1. рдореВрд▓ рдлрд╝рд╛рдЗрд▓ рдХреЛ ES рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП Modularize.js рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
  2. рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдореБрджреНрджреЛрдВ рдХреЛ рд╕рд╛рдл рдХрд░реЗрдВред
  3. рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ (рдпрд╣ рд░рд┐рд▓реАрдЬрд╝, рдпрд╛ рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ) рд╣рдо ES рдореЙрдбреНрдпреВрд▓ рдХреЛ UMD рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП rollup-examples.config.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕ рдмрд┐рдВрджреБ рдкрд░ examples/js рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг рдЕрдм рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдирд╣реАрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рд╣рд╛рдеред
  4. рдПрдХ рдмрд╛рд░ рдпрд╣ рд╕реНрдерд┐рд░ рд╣реЛ рдЬрд╛рдиреЗ рдкрд░, рд╣рдо ES6 рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдкреЗрд╢ рдХрд░рдиреЗ рдЬреИрд╕реЗ рдЕрдиреНрдп рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

@mrdoob рд╕рд┐рд░реНрдл рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХрд╛ рдорддрд▓рдм рдЙрдиреНрд╣реЗрдВ ES рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдЕрдиреНрдп ES6 рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ, рд╣реИ рдирд╛?

рд╣рд╛рдБ рдХреНрд╖рдорд╛ рдХрд░реЗрдВред рдореБрдЭреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ред

рдореИрдВрдиреЗ рдФрд░ @bhouston рдиреЗ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рд╣реБрдЖ PR рдмрдирд╛рдпрд╛ рд╣реИ рдЬреЛ рдЕрдзрд┐рдХрд╛рдВрд╢ Three.JS рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП *.d.ts рдлрд╛рдЗрд▓реЛрдВ рдХрд╛ рдпреЛрдЧрджрд╛рди рджреЗрддрд╛ рд╣реИред https://github.com/mrdoob/three.js/pull/15597

рдореИрдВ рд╕рд┐рд░реНрдл ES6 рдХрдХреНрд╖рд╛рдУрдВ рдФрд░ рдЯрд╛рдЗрдкрдкреНрд░рддрд┐ рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рд╣рд░ рдмрд╛рд░ рдЬрдм рдореИрдВ рддреАрди.рдЬреЗрдПрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реЛрддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреА рд╕реМ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдХреЙрдкреА рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдЕрдкреНрд░рд╛рдкреНрдп рджрд╛рдпрд░реЗ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред рдЕрдЧрд░ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рджреГрд╢реНрдпреЛрдВ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдирд╛ рд╣реИ рддреЛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╢рд╛рдирджрд╛рд░ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣ рдХреЛ рдПрдХ рдирдП рд╕реНрддрд░ рдкрд░ рд▓реЗ рдЬрд╛рдПрдЧрд╛ рддрд╛рдХрд┐ рдЕрдВрддрд┐рдо рд░реВрдк рд╕реЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдФрд░ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХреЗред
рддреЛ рдХреГрдкрдпрд╛ рдХрдХреНрд╖рд╛ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрдо рд╕реЗ рдХрдо "рд╕рдВрд░рдХреНрд╖рд┐рдд" рдХрд░реЗрдВ рдФрд░ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрдкрд╡рд╛рдж рдХреЗ рдкрд╣реБрдВрдЪ рдпреЛрдЧреНрдп рдмрдирд╛рдПрдВ

рд╣рд░ рдмрд╛рд░ рдЬрдм рдореИрдВ рддреАрди.рдЬреЗрдПрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реЛрддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреА рд╕реМ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдХреЙрдкреА рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдЕрдкреНрд░рд╛рдкреНрдп рджрд╛рдпрд░реЗ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред ... рддреЛ рдХреГрдкрдпрд╛ рдХрдХреНрд╖рд╛ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрдо рд╕реЗ рдХрдо "рд╕рдВрд░рдХреНрд╖рд┐рдд" рдФрд░ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрдкрд╡рд╛рдж рдХреЗ рдкрд╣реБрдВрдЪ рдпреЛрдЧреНрдп рдмрдирд╛рдПрдВред

@dionysiusmarquis рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдкрдХрд╛ рдпрд╣рд╛рдВ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ ... рдореМрдЬреВрджрд╛ рдЯреАрдПрд╕ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдореЗрдВ рдРрд╕реЗ рдлрд╝рдВрдХреНрд╢рди рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдирд┐рдЬреА рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдпрд╛ рд╡рд░реНрддрдорд╛рди рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк-рд╢реИрд▓реА рд╡рд░реНрдЧ рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЯреАрдПрд╕ рдореЗрдВ рдХрдард┐рди рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ? рдХреНрдпрд╛ рдЖрдк рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рд╣рд░ рдмрд╛рд░ рдЬрдм рдореИрдВ рддреАрди.рдЬреЗрдПрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реЛрддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреА рд╕реМ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдХреЙрдкреА рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдЕрдкреНрд░рд╛рдкреНрдп рджрд╛рдпрд░реЗ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред ... рддреЛ рдХреГрдкрдпрд╛ рдХрдХреНрд╖рд╛ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрдо рд╕реЗ рдХрдо "рд╕рдВрд░рдХреНрд╖рд┐рдд" рдФрд░ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрдкрд╡рд╛рдж рдХреЗ рдкрд╣реБрдВрдЪ рдпреЛрдЧреНрдп рдмрдирд╛рдПрдВред

@dionysiusmarquis рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдкрдХрд╛ рдпрд╣рд╛рдВ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ ... рдореМрдЬреВрджрд╛ рдЯреАрдПрд╕ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдореЗрдВ рдРрд╕реЗ рдлрд╝рдВрдХреНрд╢рди рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдирд┐рдЬреА рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдпрд╛ рд╡рд░реНрддрдорд╛рди рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк-рд╢реИрд▓реА рд╡рд░реНрдЧ рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЯреАрдПрд╕ рдореЗрдВ рдХрдард┐рди рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ? рдХреНрдпрд╛ рдЖрдк рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдореИрдВ рд╕рд┐рд░реНрдл рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░рд┐рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЫрд╛рдпрд╛ рдорд╛рдирдЪрд┐рддреНрд░ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП getDepthMaterial рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ред рдлрд┐рд▓рд╣рд╛рд▓ рдореИрдВ рдЕрдкрдиреЗ рд╡рд╛рдВрдЫрд┐рдд рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рд╕рд╣рд┐рдд рдкреНрд░рддрд┐рд▓рд┐рдкрд┐/рдкреЗрд╕реНрдЯ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЕрдкрдирд╛ рдЦреБрдж WebGLShadowMap рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реВрдВред
рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рд░ рдПрдХ three.js рд╡рд░реНрдЧ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рдЦреБрд▓рд╛рд╕рд╛ рдХрд░реЗрдЧрд╛ред рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдЖрдк рдЗрдЪреНрдЫрд┐рдд рдЙрджреНрджреЗрд╢реНрдп рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рдиреА рд╕реЗ private рдпрд╛ protected рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдзреНрд╡рдЬрд╛рдВрдХрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ ES6 рдХреНрд▓рд╛рд╕/рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╢реИрдбреЛрдореИрдк рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

interface MaterialCache {
  [uuid: string]: {[uuid: string]: MeshDepthMaterial}
}

class ShadowMap {
  public enabled: boolean = false
  public autoUpdate: boolean = true
  public needsUpdate: boolean = false
  public type: ShadowMapType

  тАж

  protected depthMaterials: MeshDepthMaterial[]
  protected materialCache: MaterialCache

  constructor (renderer: WebGLRenderer, objects: WebGLObjects, maxTextureSize: any) {
    тАж
  }

  protected getDepthMaterial (object: Object3D, material: Material) {
    тАж
  }
}

export { ShadowMap as WebGLShadowMap }

рдпрд╣ рд╕рд┐рд░реНрдл рдШрд░ рдЬреИрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЕрдЧрд░ рдЖрдкрдХреЛ "рдирд┐рдореНрди рд╕реНрддрд░" рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ

рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдореЗрд░рд╛ рдПрдХ рдкреНрд░рд╢реНрди рд╣реИред рд╣рдо рд╡реЗрдХреНрдЯрд░3.рдЕрдирдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЬреИрд╕реА рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдХреНрд▓рд╛рд╕ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдореЗрдВ рдХреИрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВрдЧреЗ? рдПрдХ рдирдпрд╛ рджрд╛рдпрд░рд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрдВрдж рдХрд░рдиреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред рдпрд╣ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рддрдВрддреНрд░ рд╣реИ рдЬреЛ рд╡рд╕реНрддреБ рдирд┐рд░реНрдорд╛рдг рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рдХрдо рд░рдЦрддрд╛ рд╣реИред

рдХреНрдпрд╛ рд╣рдореЗрдВ рдЗрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ Object.assign рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?
@ рдореБрдЧреЗрди87

рдЕрдм рдЖрдк рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХреНрд▓реЛрдЬрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрд╕ рд╡рд╛рдХреНрдпрд╛рддреНрдордХ рдЪреАрдиреА рдореЗрдВ рдХреИрд╕реЗ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПред StackOverflow рдкрд░ рдореЗрд░рд╛ рдЙрддреНрддрд░ рджреЗрдЦреЗрдВ: https://stackoverflow.com/questions/39297258/iife-in-es6-class-literal/56077521#56077521 (рдореБрдЭреЗ рд╡рд┐рдирдореНрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рд╕рдордЭрддрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ/рдХреНрдпреЛрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ) ред)

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЛрдб рдПрдХ рд╡рд┐рд░реЛрдзреА рдкреИрдЯрд░реНрди рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ рдФрд░ рд╣рдореЗрдВ рдЗрд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЕрдиреБрдХреВрд▓рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореЙрдбреНрдпреВрд▓ рджрд╛рдпрд░реЗ рдореЗрдВ рдЪрд░реЛрдВ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдЙрдЪрд┐рдд рд╕рдорд╛рдзрд╛рди рд╣реИрдВред рдореИрдВ рдЗрд╕ рдорд╛рд░реНрдЧ рдкрд░ рдЬрд╛рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВред

@ Mugen87 рд╣рд╛рдБ рдореБрдЭреЗ рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдореЙрдбреНрдпреВрд▓-рд╕реНрдХреЛрдк рдХрд╛ рдЕрдЪреНрдЫрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рд╕реЗ рдЯреНрд░реА-рд╣рд┐рд▓рд┐рдВрдЧ рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдореЗрдВ рднреА рдорджрдж рдорд┐рд▓реЗрдЧреАред рдЗрд╕ рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрдИ рдЕрдиреНрдп рдореБрджреНрджреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛ рдЪреБрдХреА рд╣реИ: https://github.com/mrdoob/three.js/issues/6241#issuecomment -398703521

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЛрдб рдПрдХ рд╡рд┐рд░реЛрдзреА рдкреИрдЯрд░реНрди рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ рдФрд░ рд╣рдореЗрдВ рдЗрд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЕрдиреБрдХреВрд▓рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореЙрдбреНрдпреВрд▓ рджрд╛рдпрд░реЗ рдореЗрдВ рдЪрд░реЛрдВ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдЙрдЪрд┐рдд рд╕рдорд╛рдзрд╛рди рд╣реИрдВред рдореИрдВ рдЗрд╕ рдорд╛рд░реНрдЧ рдкрд░ рдЬрд╛рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВред

рдХреЛрдИ рджрд┐рдХреНрдХрдд рдирд╣реАрдВ рд╣реИред рдореИрдВрдиреЗ рдЕрднреА рд╕рдВрднрд╛рд╡рдирд╛ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдмреЗрд╣рддрд░/рдХреНрд▓реАрдирд░ рд╕рдорд╛рдзрд╛рди рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рддреЛ рдореИрдВ рдЗрд╕реЗ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рд╣реВрдВред рдереНрд░реА.рдЬреЗрдПрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ (рдЙрдкрдпреЛрдЧ, рд╕реНрд░реЛрдд, рдЪрд░реНрдЪрд╛ рдЖрджрд┐) рдЬреЗрдПрд╕ рдЬреНрдЮрд╛рди рдХрд╛ рдореЗрд░рд╛ рдореБрдЦреНрдп рд╕реНрд░реЛрдд рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдереНрд░реА.рдЬреЗрдПрд╕ рдореЗрдВ рдирдП рдФрд░ рдмреЗрд╣рддрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкреИрдЯрд░реНрди рдкреЗрд╢ рдХрд░рдиреЗ рд╕реЗ рд╢рд╛рдпрдж рдореБрдЭреЗ рдФрд░ рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рднреА рдлрд╛рдпрджрд╛ рд╣реЛрдЧрд╛ред рдкрдЫрддрд╛рдиреЗ рдХреА рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВред ;-)

@ Mugen87 рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдХреНрд▓рд╛рд╕-рдЖрдИрдЖрдИрдПрдлрдИ рдХреЛ рдПрдХ рд╡рд┐рд░реЛрдзреА рдкреИрдЯрд░реНрди рдХреНрдпреЛрдВ рдорд╛рдирддреЗ рд╣реИрдВ, рдпрджрд┐ рдХреЗрд╡рд▓ рдЗрддрдирд╛ рд╣реА рдореИрдВ рдХреБрдЫ рдФрд░ рд╕реАрдЦ рдФрд░ рд╕рдордЭ рд╕рдХрддрд╛ рд╣реВрдБ? рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдореЙрдбреНрдпреВрд▓ рд╕реНрдХреЛрдк рд╡реИрд░рд┐рдПрдмрд▓ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рд╣реЛрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рдХреЛрд░ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рдерд╛ред рдФрд░ рдХреИрд╢ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрдИ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛрдЧрд╛ рдХрд┐ рдХреЛрдИ рднреА рдлрд╝рдВрдХреНрд╢рди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдЯрдХрд░рд╛рдП рдпрд╛ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗ - рдлрд╝рдВрдХреНрд╢рди рд╕реНрдХреЛрдкрд┐рдВрдЧ рдЗрд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдирд╛ рдФрд░ рдмрдирд╛рдП рд░рдЦрдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИ, рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореИрдВ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдпрд╣ рдПрдХ рд╡рд┐рд░реЛрдзреА рдкреИрдЯрд░реНрди рдХреЗ рд░реВрдк рдореЗрдВ (рдХрдо рд╕реЗ рдХрдо рдЬрдм рдореЙрдбреНрдпреВрд▓ рдХреЗ рджрд╛рдпрд░реЗ рдореЗрдВ рд╕рднреА рдХреИрд╢ рдЪрд░ рдХреЛ рдлреЗрдВрдХрдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ)ред

рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдХреНрд▓рд╛рд╕-рдЖрдИрдЖрдИрдПрдлрдИ рдХреЛ рдПрдХ рд╡рд┐рд░реЛрдзреА рдкреИрдЯрд░реНрди рдХреНрдпреЛрдВ рдорд╛рдирддреЗ рд╣реИрдВ?

рдореИрдВ рдРрд╕реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ рдЬреЛ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдпрд╣рд╛рдВ рдмрддрд╛рдП рдЧрдП рдкреЗрдбрд╝-рдЭрдЯрдХреЛрдВ рдХреЛ рдмрд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ: https://github.com/mrdoob/three.js/pull/14695ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреВрд░рд╛ рдкреИрдЯрд░реНрди рд╣реИрдХ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред рдХрдо "рдлреИрдВрд╕реА" рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрдорддреМрд░ рдкрд░ рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЕрдирд╛рд╡рд╢реНрдпрдХ рдмрдВрджреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рднреА рд╕реБрдзрд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдЗрд╕реЗ рдПрдХ рд╕рдВрджрд░реНрдн рдХреЗ рд╕рд╛рде рд╕рд╛рдмрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕реЗ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рдПрдХ рдмрд╛рдд рдкрд░ рд╕реБрдирд╛ рд╣реИ)ред

рдФрд░ рдХреИрд╢ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрдИ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛрдЧрд╛ рдХрд┐ рдХреЛрдИ рднреА рдлрд╝рдВрдХреНрд╢рди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдЯрдХрд░рд╛рдП рдпрд╛ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗред

IIFE рдХрд╛ рдЙрдкрдпреЛрдЧ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЧрдгрд┐рдд рдХреА рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд╣рд╛рдВ рдЕрдЪреНрдЫреА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд╡рд░реЗрдЬ рд╣реИ ( @ рдЬреАрд░реЛ 3 рдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЕрдзрд┐рдХ рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рдЬреЛрдбрд╝рдХрд░ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ), рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛рдиреЗ рдХреЛ рдордЬрдмреВрдд рдмрдирд╛рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЖрдИрдЖрдИрдПрдлрдИ рдХреЛ рд╣рдЯрд╛рдирд╛ рдареАрдХ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ 2013 рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реВрдВред рдпрд╣ рдПрдХ рд╕реНрдерд┐рд░ рдЪрд░ рдкреИрдЯрд░реНрди рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдерд╛ рдЬрд┐рд╕реЗ рдмрдирд╛рдП рд░рдЦрдирд╛ рдХрдард┐рди рдерд╛ред рдпрд╣ рдЗрд╕ рдкреАрдЖрд░ рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:

https://github.com/mrdoob/three.js/pull/2941

https://github.com/mrdoob/three.js/issues/2936

рдФрд░ рдпрд╣рд╛рдВ рдкрд╣рд▓реЗ рднреА рдЪрд░реНрдЪрд╛ рдХреА:

https://github.com/mrdoob/three.js/pull/2920#issuecomment -12217793

рджрд┐рд▓рдЪрд╕реНрдк рддрдереНрдп, рдЬрдм рд╣рдордиреЗ рдЗрдиреНрд╣реЗрдВ рдбрд╛рд▓рд╛, рддреЛ рдХреЛрдб рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдХреЛрдИ рдЕрдВрддрд░ рдирд╣реАрдВ рдерд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд░реВрдкрд╛рдВрддрд░рдг рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ:

  1. рдореВрд▓ рдлрд╝рд╛рдЗрд▓ рдХреЛ ES рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП Modularize.js рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
  2. рдЬрд░реВрд░рдд рдкрдбрд╝рдиреЗ рдкрд░ рдореБрджреНрджреЛрдВ рдХреЛ рд╕рд╛рдл рдХрд░реЗрдВред
  3. рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ (рдпрд╣ рд░рд┐рд▓реАрдЬрд╝, рдпрд╛ рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ) рд╣рдо ES рдореЙрдбреНрдпреВрд▓ рдХреЛ UMD рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП rollup-examples.config.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕ рдмрд┐рдВрджреБ рдкрд░ examples/js рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг рдЕрдм рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдирд╣реАрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рд╣рд╛рдеред
  4. рдПрдХ рдмрд╛рд░ рдпрд╣ рд╕реНрдерд┐рд░ рд╣реЛ рдЬрд╛рдиреЗ рдкрд░, рд╣рдо ES6 рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдкреЗрд╢ рдХрд░рдиреЗ рдЬреИрд╕реЗ рдЕрдиреНрдп рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЕрд░реЗред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдЪреВрдХ рдЧрдпрд╛ рд╣реЛ, рд▓реЗрдХрд┐рди рдХрдХреНрд╖рд╛рдУрдВ рдХреА рдУрд░ рд╣рдорд╛рд░рд╛ рдпрд╣ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдХрджрдо рдХреНрдпрд╛ рдерд╛?

  1. [x] рдореВрд▓ рдлрд╝рд╛рдЗрд▓ рдХреЛ ES рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП Modularize.js рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
  2. [x] рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдореБрджреНрджреЛрдВ рдХреЛ рд╕рд╛рдл рдХрд░реЗрдВред
  3. [ ] рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ (рдпрд╣ рд░рд┐рд▓реАрдЬ, рдпрд╛ рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ) рд╣рдо ES рдореЙрдбреНрдпреВрд▓ рдХреЛ UMD рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд░реЛрд▓рдЕрдк-examples.config.js рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕ рдмрд┐рдВрджреБ рдкрд░ рдЙрджрд╛рд╣рд░рдг/js рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг рдЕрдм рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдирд╣реАрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рд╣рд╛рдеред
  4. [ ] рдПрдХ рдмрд╛рд░ рдпрд╣ рд╕реНрдерд┐рд░ рд╣реЛ рдЬрд╛рдиреЗ рдкрд░, рд╣рдо ES6 рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдЬреИрд╕реЗ рдЕрдиреНрдп рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЙрдкрд░реЛрдХреНрдд рдЪрд░рдгреЛрдВ рдореЗрдВ, рд╣рдордиреЗ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдЪрд░рдг (1) рдФрд░ (2) рдХреЛ рдкреВрд░рд╛ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИред

рдЪрд░рдг (3) рд╣рдо рдЕрдм рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ examples/js рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рд╣рдЯрд╛ рджреЗрдВрдЧреЗ рдФрд░ рд╣рдЯрд╛ рджреЗрдВрдЧреЗ (рджреЗрдЦреЗрдВ https://github.com/mrdoob/three.js/pull/18749) .

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЪрд░рдг (4), ES6 рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ examples/jsm рдореЗрдВ рдкреЗрд╢ рдХрд░рдирд╛ рдХреЗрд╡рд▓ (рдЕрднреА рдХреЗ рд▓рд┐рдП) рдмрд╣реБрдд рдХрдо рдЙрджрд╛рд╣рд░рдгреЛрдВ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ examples/js рд╕реНрд░реЛрдд рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рд╕реЗ рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдПрдХ рдмрд╛рд░ examples/js рд╣рдЯрд╛ рджрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдмрд╛рдХреА рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

^рд▓реЗрдХрд┐рди рдореИрдВ рдпрд╣рд╛рдБ рдХреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкрдврд╝ рд░рд╣рд╛ рд╣реВрдБ, рд╢рд╛рдпрдж @ Mugen87 рдпрд╛ @mrdoob рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдЖрдИрдПрдордУ, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдХреЗрд╡рд▓ рдореЙрдбреНрдпреВрд▓ рдХреЛрдб рдЖрдзрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП examples/js рдХреЛ рд╣рдЯрд╛рдиреЗ рдФрд░ рд╣рдЯрд╛рдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдЧрд▓реЗ рдЪрд░рдг рдореЗрдВ, рдореИрдВ рдХрдХреНрд╖рд╛ рдкреНрд░рд╡рд╛рд╕ рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдирд╛ рдФрд░ рдлрд┐рд░ рдХреЛрд░ рдХреЛ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдирд╛ред

рдЙрддреНрддрдоред рд╢реБрдХреНрд░рд┐рдпрд╛ред рдЙрди рддрд░реАрдХреЛрдВ рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВрдЧреЗ

рдмрдВрдж рдЕрдВрдХ рд╕реЗ рдкреБрдирд░реНрдкреНрд░рдХрд╛рд╢рд┐рддред
рдирдорд╕реНрддреЗ,

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдФрд░ рд╣рд░ рдХрд┐рд╕реА рдХреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдЫреЗрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рд╣рдо рд╡рд░реНрдЧ рдкреНрд░рд╡рд╛рд╕ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдЖрдЧреЗ рдмрдврд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдореИрдВрдиреЗ рдЕрдм рддрдХ рдЬреЛ рдХреБрдЫ рднреА рджреЗрдЦрд╛ рд╣реИ рдЙрд╕рдХрд╛ рдореЗрд░рд╛ рддреНрд╡рд░рд┐рдд рд╕рд╛рд░рд╛рдВрд╢:

  • рд╣рдореЗрдВ рдХреБрдЫ рдФрд░ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрджрд╛рд╣рд░рдг рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рд╣рдЯрд╛ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП
  • src/ рдХреЗ рдХреБрдЫ рднрд╛рдЧ рдРрд╕реЗ рд╣реИрдВ рдЬреЛ рдХрд┐рд╕реА рднреА рдЙрджрд╛рд╣рд░рдг рджреНрд╡рд╛рд░рд╛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдирд╣реАрдВ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
  • Modularize.js рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХреБрдЫ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЗ рд╕рд╛рде рд╣рдо рдЙрджрд╛рд╣рд░рдг/js/ рдкрд░ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕рдВрдмрдВрдзрд┐рдд рдЙрджрд╛рд╣рд░рдг/jsm рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред

рдХреНрдпрд╛ рдореБрдЭреЗ рдХреБрдЫ рдпрд╛рдж рдЖрдпрд╛?

рд╣рдореЗрдВ рдХреБрдЫ рдФрд░ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрджрд╛рд╣рд░рдг рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рд╣рдЯрд╛ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ examples/js рдлрд╝реЛрд▓реНрдбрд░ рдкрд░ рдХрд┐рд╕реА рднреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдЧрд▓реЗ рдЪрд░рдг рдХреЗ рд▓рд┐рдП рдХреМрди рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдЬрдм рддрдХ рд╣рдо рдЙрд╕ рдпреЛрдЬрдирд╛ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдореИрдВ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдЪреАрдЬреЛрдВ рдХреЛ ES рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рд╕реЗ рди рд░реЛрдХреЗред рдЗрд╕реА рдХрд╛рд░рдг рд╕реЗ, рдореИрдВ рдХреБрдЫ рд╣рдж рддрдХ https://github.com/mrdoob/three.js/issues/11552#issuecomment -592768708 рд╕реЗ рдЕрд╕рд╣рдордд рд╣реВрдВред рдореИрдВ

рдЗрд╕рд╕реЗ рдЖрдЧреЗ, рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдмрд╕ рдПрдХ рддрд┐рдерд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рд╕рдВрд╢реЛрдзрди рдХреЗ рдПрдХ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ, рдореБрдЭреЗ рдпрд╣ рдЯрд┐рдкреНрдкрдгреА рдорд┐рд▓реА рдХрд┐ рд╡рд░реНрддрдорд╛рди рд░реЛрд▓рдЕрдк рдмрд┐рд▓реНрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдиреНрдп ES2015 рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдХреИрд╕реЗ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг рднреА рджрд┐рдпрд╛ рд╣реИ ред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдпрд╣рд╛рдВ рдПрдХ рдФрд░ рддреНрд╡рд░рд┐рдд рдЙрджрд╛рд╣рд░рдг рдХрд╛ рд╕рд╛рд░ рд╣реИ

@ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╢рд╛рдпрдж рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рд╕рдордп рд╣реИ рдФрд░ рдореБрдЭреЗ рдорджрдж рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ред рдХреНрдпрд╛ рдореИрдВ dependencies.json рд╕реВрдЪреА рдореЗрдВ рдХреБрдЫ рдЖрдЗрдЯрдо рд▓реЗ рд╕рдХрддрд╛ рд╣реВрдВ?

@ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╢рд╛рдпрдж Object3D рдЬреИрд╕реЗ рдЧрд╣рд░реЗ рдкреВрд░реНрд╡рдЬреЛрдВ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдХреНрдпрд╛ рд╣реИ? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВ src/audio/AudioListener.js рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЯреВрдЯ-рдлреВрдЯ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛:

[ROLLUP] bundles src/Three.js тЖТ build/three.js...
[ROLLUP] (!) Error when using sourcemap for reporting an error: Can't resolve original location of error.
[ROLLUP] src/audio/AudioListener.js: (137:1)
[ROLLUP] [!] Error: 'return' outside of function
[ROLLUP] src/audio/AudioListener.js (137:1)
[ROLLUP] 135:   };
[ROLLUP] 136: 
[ROLLUP] 137:   return AudioListener;
[ROLLUP]        ^
[ROLLUP] 138: }(Object3D));
[ROLLUP] Error: 'return' outside of function

рдЕрдЧрд░ рд╣рдо рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдпрд╛рдж рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рд╣рдо рдХрд┐рд╕реА рднреА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдПрдХ рдиреЛрдЯ рдмрдирд╛рдиреЗ рдЬрд╛ рд░рд╣реЗ рдереЗред

рдореИрдВрдиреЗ рдЧрд▓рдд рд╕рдордЭрд╛ рдХрд┐ AudioListener рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рдерд╛... рдХреБрдЫ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ bubleCleanup рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо рдореЗрдВ рдПрдХ рдорд┐рд▓рд╛рди рд╕рдорд╕реНрдпрд╛ рд╣реИред рдХреБрдЫ рдФрд░ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП https://github.com/mrdoob/three.js/pull/19934#issuecomment -667411997 рджреЗрдЦреЗрдВред рдореИрдВ рдХреБрдЫ рдЕрд▓рдЧ рд╡рд░реНрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдЗрд╕рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдмрд╣реБрдд рдЖрдЧреЗ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╢рд╛рдпрдж рдЗрд╕реЗ рд╣рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдпрд╣ рдХреБрдЫ рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣реЛрдЧрд╛ рд▓реЗрдХрд┐рди рд╕рднреА рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред рд╣рдо рдЗрд╕ рддрд░рд╣ рдХреЗ рдореБрджреНрджреЗ рдХреА рдЖрд╢рдВрдХрд╛ рдХрд░ рд░рд╣реЗ рдереЗред

рд╕рд╛рде рдЪрд▓рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рдХреГрдкрдпрд╛ рдпрд╣рд╛рдБ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд╛ рдПрдХ рддреНрд╡рд░рд┐рдд рдкрдарди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ ред

рдЗрд╕ рдмреАрдЪ, src/loaders !

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

alexprut picture alexprut  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

clawconduce picture clawconduce  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jlaquinte picture jlaquinte  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Bandit picture Bandit  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

fuzihaofzh picture fuzihaofzh  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ