Показать сообщение отдельно
  #20 (permalink)  
Старый 12.02.2012, 01:09
Профессор
Посмотреть профиль Найти все сообщения от Mахmахmахimus
 
Регистрация: 10.02.2012
Сообщений: 254

//создание создавателя классов
(function(name) {
	init = {}
	init.class = {}

	init.private = function() {

	}
	init.protected = function() {

	}
	init.public = function() {

	}
	init.static = function() {

	}

	window[name] = function Class(class) {
		init.class = {} //очищаем кастрюлю от предыдущего "сваренного" класса
		class.call(init)
		return init.class
	}
})('Class')

//пример создания класса
var Cat = Class(function Cat() {
	this.private({
	    a : 20,
	    spead : 20
	})
	this.protected({

	})
	this.public({

	})
	this.static({

	})
});


вот каркас того что я начал делать, по сути функция Class принимает функцию описывающую класс, каким образом? вызывая определенные методы относительно this и суя с них обьекты.

так вот фунция Class принимает эту функцию и вызывает относительно обьекта init который хранится в её замыкании, методы в этом init что-то делают с полученнынми обьектами, наполняя свойство init.class создавая там функцию фабрику класса.

потом функция Class просто возвращает полученное там init.class значение))
правда init.class придется очищать перед каждый созданием класса потому что в нем будет хранится ссылка на предыдущий созданный класс, но это мелочи)) это как кастрюлю после варки помыть.

Последний раз редактировалось Mахmахmахimus, 12.02.2012 в 01:20.
Ответить с цитированием