Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 01.09.2012, 16:04
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

nerv_, а где список всех задач посмотреть?
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #12 (permalink)  
Старый 01.09.2012, 18:36
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

FINoM, я знаю только этот способ - здесь нажать показать/спрятать задачи.
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #13 (permalink)  
Старый 01.09.2012, 23:59
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Собсно, вопрос, исходя из темы: какими способами можно модифицировать прототип свойствами другого объекта (или его прототипа) во время или после инициализации экземпляра конструктора?

В разделе "ваши сайты и скрипты" я предложил два метода: использовать __proto__ и тупо соединить старый прототип с новым объектом, просто копируя новые свойства.
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #14 (permalink)  
Старый 02.09.2012, 03:49
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

После долгого и нудного гугления, определил, что никак. Когда-нибудь в браузерах появится Object.setProrotypeOf, но сейчас этот метод только обсуждается.
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #15 (permalink)  
Старый 02.09.2012, 04:16
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

вот нашел у себя в хламе давно как то экспериментировал:
function setProto( object, proto ) {

	if ( "__proto__" in Object.prototype ) {
		return object.__proto__ = proto, object;
	}

	var protoFn = function() {},
		hasDefine = false;

	try {
		Object.defineProperty({}, 'test', {value:null});
		hasDefine = true;
	} catch( _e_ ) {}

	protoFn.prototype = proto;
	proto = new protoFn();

	for( var key in object ) {
		if ( object.hasOwnProperty( key ) ) {
			if ( hasDefine ) {
				Object.defineProperty( proto, key, Object.getOwnPropertyDescriptor( object, key ) );
			} else {
				proto[ key ] = object[ key ];
			}
		}
	}

	return proto;
}


var a = {
	get name() {
		return "Hello";
	},
	testA: function() {}
}

var b = {
	get name() {
		return Object.getPrototypeOf( this ).name + " world";
	},
	testB: "str",
	he: undefined
}

var c = {
	name: function() {
		return Object.getPrototypeOf( this ).name + " world test";
	}
}

b = setProto( b, a )
c = setProto( c, b );

alert( c.name() );
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #16 (permalink)  
Старый 02.09.2012, 04:19
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

devote, да, я тоже такое решение нашел. Но нужно не вернуть объект с новым прототипом, а привязать к уже готовому.
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #17 (permalink)  
Старый 02.09.2012, 04:23
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

А вот зачем мне это: Немного магический способ наследования (если ты тему раньше не заметил).
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #18 (permalink)  
Старый 02.09.2012, 04:34
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от FINoM
а привязать к уже готовому.
ну это вряд ли сделаешь, а тупое копирование приведет к разрушению наследования.. То есть instanceof перестанет работать как надо.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #19 (permalink)  
Старый 02.09.2012, 04:35
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от FINoM
(если ты тему раньше не заметил).
я видел эту тему
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #20 (permalink)  
Старый 02.09.2012, 11:59
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от FINoM
Собсно, вопрос, исходя из темы: какими способами можно модифицировать прототип свойствами другого объекта (или его прототипа) во время или после инициализации экземпляра конструктора?
модифицировать можно. Вопрос в том, требуется ли, чтобы ранее созданные объекты имели доступ к новым методам и свойствам. Привязка новых свойств к прототипу после создания объекта не "совсем правильно".
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук

Последний раз редактировалось nerv_, 02.09.2012 в 12:02.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу понять, почему не работает автокомпил в IE 8 gargon2008 jQuery 0 07.06.2011 11:31
Помогите с javascript (Почему не работает) remus Оффтопик 9 09.06.2010 11:18
Калькулятор работает ТОЛЬКО в ie6 (вопрос ламера) st_sinner Javascript под браузер 3 17.04.2010 18:11
Не работает код из внешнего файла в IE6 Petka jQuery 2 03.03.2010 16:09
Почему не работает код? JSprog Общие вопросы Javascript 4 16.08.2009 14:39