/**
* Underscore.js
*
* The _.extend() function is used to create a copy of all of the properties
* of the source objects over the destination object and
* return the destination object.
* The nested arrays or objects will be copied by using reference, not duplicated.
**/
import * as _ from 'underscore'
_.extend(destination, *sources)
p = _.extend(Person.prototype, {a:"AAAAAAAA"});
var x = new p.constructor("some extra stuff");
console.log(x.a);
console.log(x.firstName);
/*has both a="AAAAAAA" and firstName="some extra stuff"*/
/*add stuff to the second, you can think of it as*/
class Person
{
constructor(firstName)
{
this.firstName = firstName
}
}
_.extend(Person.prototype, {addedProperty:"ssssxxxxssss"});
const p = new Person("james");
console.log(p.addedProperty);
class Person
{
constructor(firstName)
{
this.firstName = firstName
}
}
class Thing
{
constructor()
{
this.addProperty = "firstName";
}
}
_.extend(Person.prototype, Thing.property);
const p = new Person("james");
console.log(p.addedProperty);
Person = function(attributes)
{
this.attributes = attributes;
}
_.extend(Person.prototype, {test: function(){return _.clone(this.attributes)}});
const s = new Person("some test text");
console.log(s.attributes);
console.log(s.test());
/*the key to getting attributes to display is using a function(){} and _.clone()*/
/*just test: this.attributes will be undefined*/
var Collection = Backbone.Collection = function(models, options) {
/**/
};
_.extend(Collection.prototype, Events, {...});
/* h: function(){console.log(this.models);},
so after you use the _.extend, in the third or second {} you want to add to the prototype, any of the inputs parameters of the prototype you can access in the 2nd or 3rd part with this.models
*/