/**
* 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
*/
Person = function(name)
{
this.name = "name";
this.a = function(a)
{console.log(a)
}
this.a(this.name);
this.b();
}
_.extend(Person.prototype, {x: function(){console.log(this.name)}, b: function(){console.log("BBBBBBBBBBBBB")}});
const p= new Person("XXXX");
p.x();
the above is valid code so long as a this.name exists in the Person.prototype
the this.b() is also valid code so long as b() is added in later at the _.extend() part.