bem-sdk-archive / bem-entity-name

BEM entity name representation. DEPRECATED →
https://github.com/bem/bem-sdk/tree/master/packages/entity-name
Other
5 stars 3 forks source link

clone method #102

Open blond opened 7 years ago

blond commented 7 years ago
const BemEntityName = require('@bem/entity-name');

const buttonName = new BemEntityName({ block: 'button' });

buttonName.clone(); // BemEntityName({ block: 'button' })

const mutant = buttonName.clone({ elem: 'text' }); // BemEntityName({ block: 'button', elem: 'text' })

mutant.clone({ elem: null }); // BemEntityName({ block: 'button' })
blond commented 7 years ago

Simple clone without parameters looks strange for immutable objects. Especially if we to implement optimization for create same instances (#103).

const BemEntityName = require('@bem/entity-name');

const name = new BemEntityName({ block: 'button' });
const clone = buttonName.clone();

name === clone // WTF ???