Показать сообщение отдельно
  #13 (permalink)  
Старый 12.12.2014, 16:24
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

tsigel,
///////////////////////////////////////////////////////////////////////
//prepare:
 
Object.defineProperty(Object.prototype, "extend111", {
 value: function(src){
   for(var i in src){this[i]=src[i]}
 },
 enumerable: false
})
 
 
Nigger=function(){} // левый класс
Nigger.prototype.color="black"
 
/////////////////////////////////////////////////////////////////////////
//implementation:
 
Class=function(classProperties, opt){
   var f=function(init){
      if(opt) if(opt.object) this.extend111(opt.object)
      this.extend111(init)
   }
   if(opt) if(opt.parent) {
                             f.prototype=Object.create(opt.parent.prototype)
                             f.prototype.constructor=f
                          }
   f.prototype.extend111(classProperties)
   return f
}
 
 
//////////////////////////////////////////
//example
 
Person=new Class({legs: 2, hands: 2, head: 1}, {object: {a: 1}, parent: Nigger})
 
 
person1=new Person({name: "Jack"})
person2=new Person({name: "John"})
 
with(person1){console.log(color, hands, name)}
with(person2){console.log(color, hands, name)}
 
Person.prototype.footballFan=true // пусть экземпляры нашего класса person будут  футбольными болельщиками
Nigger.prototype.teeth="white" // пусть левый нигер теперь с белыми зубами
 
with(person1){console.log(color, hands, name, teeth, footballFan)}
with(person2){console.log(color, hands, name, teeth, footballFan)}
 
 
//  black 2 Jack
//  black 2 John
//  black 2 Jack white true
//  black 2 John white true

за тебя сделал, пробуй
Ответить с цитированием