Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #41 (permalink)  
Старый 25.08.2011, 09:44
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от B@rmaley.e><e Посмотреть сообщение
Опера, хромиум, FF5+:
твоё решение будет получше моего

<div id=a>0</div>

<script>
a=document.getElementById('a');

/* тут пропущенный кусок моего кода */
a=document.getElementById('a');

b = {p:1};// если не создать объект - error

b.watch.call( a, 'innerHTML', function(prop, oldval, newval){
    
    if(!oldval) oldval = a[prop];
    
    // вырезаем новый кусок
    newval = newval.substring( newval.indexOf(oldval)+1 ); 

    
    return oldval+newval.toUpperCase();
    
} );


a.onclick = function(){ a.innerHTML += 'abc' }

// всё хорошо. при клике к содержимому
// будет добавляться буква 'abc'
// всё статично
a.onclick = function(){ a.innerHTML += 'abc' };
</script>
Ответить с цитированием
  #42 (permalink)  
Старый 26.08.2011, 13:35
Аватар для systemiv
Профессор
Отправить личное сообщение для systemiv Посмотреть профиль Найти все сообщения от systemiv
 
Регистрация: 19.08.2011
Сообщений: 186

А кто сможет подкинуть задачу на прототипы и наследование?
Нужно попрактиковаться.
Спасибо!
Ответить с цитированием
  #43 (permalink)  
Старый 26.08.2011, 21:30
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от systemiv Посмотреть сообщение
А кто сможет подкинуть задачу на прототипы и наследование?
Нужно попрактиковаться.
Спасибо!

вот код, который заготовлен.
есть три класса(пардон, функции) и соотв. им экземпляры.

у каждого объекта свой конструктор, свои свойства. Свой прототип не у всех.
// Parent "class"
function Parent( a, b, c){ 
    this.a=a;
    this.b=b;
    this.c=c;
 };
function ParentPrototype (){
    this._a = function(){  };
    this. _b = function(){  };
    this._c = function(){ }
};
Parent.prototype = new ParentPrototype();

// Child "class"
function Child( d, e, f ) {  this.d = d;  this.e = e; this.f = f; };


// More "class"
function More( g ) {
     this.g = g;
     this.h = function(){ };
};
function MorePrototype(){
    _g = function(){ };
};
More.prototype = new MorePrototype();


создаем экземпляры.
var parent = new Parent( 'a','b','c' );
var child = new Child( 'd','e','f' );
var more = new More( 'g' );


Задача : написать функцию mix,
которая будет возвращать новый класс(объект), конструктор которого будет принимать все аргументы из конструкторов всех трёх переданных в неё аргументов. (ЩИТО?)
var Mixed = mix( parent, child, more );
var obj = new Mixed(
    'a','b','c', // Parent
    'd','e','f', // Child
    'g'          // More
);


а так же организовывать такой доступ к свойствам\методам переданных в неё объектов (наследие)
// Parent
obj._a(), obj._b(), obj._c();

// Mix
obj.g; obj.h();

typeof obj._g === 'undefined' // => true

из последнего (третьего) объекта методы\свойства прототипа наследоваться не будут.


...
надеюсь, вам понравится старался

Последний раз редактировалось melky, 26.08.2011 в 21:59. Причина: UPD 2. поправил прототипы
Ответить с цитированием
  #44 (permalink)  
Старый 27.08.2011, 20:05
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

> А кто сможет подкинуть задачу на прототипы и наследование?

написать фабрику классов так, чтобы каждый класс можно было использовать и как фабрику, то есть следующие фрагменты должны делать одно и тоже:

var Obj = new Factory(protoObj)
var AnotherObj = Factory(protoObj) // Obj === AnotherObj

var obj = new Obj(1,2,3) // obj instanceof Obj
var obj = Obj(1,2,3) // obj instanceof Obj


параметры указываемые при создании объекта, допустим, должны быть переданы методу init нового объекта в полном объёме (их может не быть, а может быть аж более 9000), если он определён. если не определён, то бросить исключение, мол "не знаю что с параметрами делать"
__________________
.ня
Ответить с цитированием
  #45 (permalink)  
Старый 27.08.2011, 20:29
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

> ... чтобы при клике по div к его innerHTML прибавлялись не 'abc', а 'ABC' ?
> работать эта задачка будет только в FF (версия - хз, свежая).

ну, в такой формулировке и для ие есть решение ;-)
__________________
.ня
Ответить с цитированием
  #46 (permalink)  
Старый 27.08.2011, 20:35
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от tenshi Посмотреть сообщение
> ... чтобы при клике по div к его innerHTML прибавлялись не 'abc', а 'ABC' ?
> работать эта задачка будет только в FF (версия - хз, свежая).

ну, в такой формулировке и для ие есть решение ;-)
версия от B@rmaley.e><e будет работать в IE8+
Ответить с цитированием
  #47 (permalink)  
Старый 27.08.2011, 20:50
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

угу, только практической ценности никакой..
__________________
.ня
Ответить с цитированием
  #48 (permalink)  
Старый 27.08.2011, 21:49
Аватар для float
Профессор
Отправить личное сообщение для float Посмотреть профиль Найти все сообщения от float
 
Регистрация: 01.07.2010
Сообщений: 387

Цитата:
работать эта задачка будет только в FF
<div id="a">0</div>

<script>
	var a = document.getElementById('a');
	var t = a;
	a = document.createElement('span');
	a.innerHTML = t.innerHTML;

	t.onclick = function() {
		a.onclick();
		t.innerHTML = a.innerHTML.toUpperCase();
	}

	a.onclick = function(){ a.innerHTML += 'abc';};
</script>

про сохранение значения а не упоминалось вроде, хотя наверное плохо что он не сохраняется.
ну через дум моно и это предусмотреть

Последний раз редактировалось float, 27.08.2011 в 22:20.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать, чтобы у toggle была ненулевая высота? student-k Общие вопросы Javascript 7 15.08.2011 23:46
HTML5 Как сделать, чтобы можно было двигать картинку мышью? Бобр Общие вопросы Javascript 2 18.06.2010 21:22
Нужна помощь для реализации функции d'n'd vaal Элементы интерфейса 4 09.06.2010 17:27
Создание вкладок, нужна помощь... CaHuTaP Общие вопросы Javascript 3 12.02.2009 18:41
НУжна помощ ! Jumong Общие вопросы Javascript 4 01.10.2008 23:17