LINUX.ORG.RU

История изменений

Исправление special-k, (текущая версия) :

Мой недогадливый недоверчивый друг

var Plugin1 = function(){console.log('ia plugin')};
//классовые методы
Plugin1.metainformaciyayi = {}
Plugin1.metainformaciyayi.m1 = 'метаинформация1'
Plugin1.metainformaciyayi.m2 = 'метаинформация2'
//объектные методы
Plugin1.prototype.v1 = 1
Plugin1.prototype.v2 = 2

//наследуем поочередно

////1. сначала функцию конструктор (в js не существует понятия super)
var Plugin2 = function(){
  Plugin1.apply(this, arguments)
};

////2. затем наследуем метаинформацию
Plugin2.metainformaciyayi = Object.create(Plugin1.metainformaciyayi)

////3 прототип "объекта"
Plugin2.prototype = Object.create(Plugin1.prototype)

//проверяем наследуемость
Plugin1.metainformaciyayi.m3 = 'метаинформация3'
Plugin2.metainformaciyayi.m4 = 'метаинформация4'
console.log(Plugin2.metainformaciyayi.m3) //наследовалось
console.log(Plugin1.metainformaciyayi.m4) //пусто
console.log((new Plugin2).v1)

Исходная версия special-k, :

Мой недогадливый недоверчивый друг

var Plugin1 = function(){console.log('ia plugin')};
//классовые методы
Plugin1.metainformaciyayi = {}
Plugin1.metainformaciyayi.m1 = 'метаинформация1'
Plugin1.metainformaciyayi.m2 = 'метаинформация2'
//объектные методы
Plugin1.prototype.v1 = 1
Plugin1.prototype.v2 = 2

//наследуем поочередно

////1. сначала функцию конструктор (в js не существует понятия super)
var Plugin2 = function(){
  Plugin1.apply(this, arguments)
};

////2. затем наследуем метаинформацию
Plugin2.metainformaciyayi = Object.create(Plugin1.metainformaciyayi)

////3 прототип "объекта"
Plugin2.prototype = Object.create(Plugin1.prototype)

//проверяем наследуемость
Plugin2.metainformaciyayi.m3 = 'метаинформация3'
console.log(Plugin2.metainformaciyayi.m3)
console.log(Plugin1.metainformaciyayi.m3) //пусто
console.log(Plugin2.metainformaciyayi.m1) //наследовалось
console.log((new Plugin2).v1)