JSFiddle - React, Tailwind, and code Playground
by infralabs
JavaScript
console.clear();
var AAA = function (methods) {
// argumenty przekazywane do 'AAA'
console.log("1.");
console.log("AAA arguments: ", arguments);
console.log("---");
var bbb = function () {
console.log("2.");
console.log("bbb this.initialize: ", this.initialize);
// zmienna 'name' zanim zostanie wywołana funkcja bbb.initialize
console.log("this.name/bbb.name: ", this.name);
console.log("bbb this: ", this);
// argumenty przekazywane do 'bbb'
console.log("bbb arguments: ", arguments);
console.log("---");
console.log("this.initialize.apply(this, arguments);");
console.log("---");
this.initialize.apply(this, arguments);
// zmienna 'name' po wywołaniu funkcja bbb.initialize
console.log("this.name/bbb.name: ", this.name);
console.log("bbb this: ", this);
console.log("bbb arguments: ", arguments);
};
console.log("3.");
// przed napisaniem bbb.initialize
console.log("bbb this.initialize: ", bbb.initialize);
for (var property in methods) {
bbb.prototype[property] = methods[property];
}
console.log("4.");
// po napisaniu bbb.initialize
console.log("bbb this.initialize: ", bbb.initialize);
if (!bbb.prototype.initialize) bbb.prototype.initialize = function () {};
console.log("5.");
console.log("return bbb;");
return bbb;
};
var Person = AAA({
initialize: function (name, age) {
this.name = name;
this.age = age;
},
});
var alice = new Person('Alice', 26);
// 'Alice', 26 - argumenty przekazywane de facto do 'bbb'