0.1.1 • Published 6 years ago
@ganuz/clone v0.1.1
@ganuz/clone
Clone is package from Ganuz library
Install
$ yarn add @ganuz/clone
Or
$ npm install --save @ganuz/clone
Use
Module
import {
default as clone
} from '@ganuz/clone';
Browser
<script src="https://unpkg.com/@ganuz/clone/bundle.umd.min.js"></script>
let {
clone
} = G;
Examples
let objectDescriptors = {
numbers: {value: [1, 3, 5], enumerable: true},
[Symbol.toStringTag]: {get(){ return 'Some'; } , configurable: true},
};
let object = Object.create(null, descriptors);
let cloneObject = clone(object);
let cloneDescriptors = Object.getOwnPropertyDescriptors(cloneObject);
object === cloneObject; // => false
Object.prototype.isPrototypeOf.call(object, cloneObject); // => false
Object.getPrototypeOf(cloneObject); // => null
object.numbers ==== cloneObject.numbers; // => true
objectDescriptors[Symbol.toStringTag].get === cloneDescriptors[Symbol.toStringTag].get; // => true
isDeepEqual(objectDescriptors, cloneDescriptors); // => true
class Some{
data = {foo: 'bar'};
method(){}
}
let some = new Some();
let cloneSome = clone(some);
some === cloneSome; // => false
getPrototypeOf(cloneSome) === Some.prototype; // => true
cloneSome.constructor === Some; // => true
cloneSome instanceof Some; // => true
some.data === cloneSome.data; // => true
Object.getOwnPropertyNames(cloneSome); // => ['data'];
License
Copyright © Yisrael Eliev, Licensed under the MIT license.