Показать сообщение отдельно
  #4 (permalink)  
Старый 28.05.2015, 20:45
Аспирант
Отправить личное сообщение для indeterm Посмотреть профиль Найти все сообщения от indeterm
 
Регистрация: 26.05.2015
Сообщений: 43

getType=function(object){return object? object.type : this.type}

Person={
 type: "Person",
 extend: function(o){
  for(var i in o) {if(!o.hasOwnProperty(i)) return this; this[i]=o[i]} return this
 },
 clone: function(){
  return Object.create(this)
},
 getType: getType,
 getData: function(){return this.name+" "+this.age}
}

Student=Person.clone().extend({
 type: "Student",
 getFuckingData: function(){return "I am "+this.name+" and I'm motherfucker"}
})

john=Student.clone().extend({name: "John", age: 19})

with(console){
 log(getType(john))
 log(getType.call(john))
 log(getType.apply(john))
 log(getType.bind(john)())
 log(john.getType())
 log(john.getData(), john.getFuckingData())
}

// ::: Student
// ::: Student
// ::: Student
// ::: Student
// ::: Student
// ::: John 19 I am John and I'm motherfucker

Последний раз редактировалось indeterm, 28.05.2015 в 20:51.
Ответить с цитированием