Javascript.RU

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

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

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

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

ну да, я немного не дописал:
Function.prototype.applyConstruct = function() {
    var F = function() {}
    F.prototype = this.prototype;
    this.apply( F = new F, arguments );
    return F;
}
 
F = function() { this.a = 1; console.log( this, arguments )};
var a = F.applyConstruct( 1,2,3,4,5 );

alert( a instanceof F );
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #15 (permalink)  
Старый 01.09.2012, 04:54
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

тему не читай
сразу отвечай

Разве не достаточно сделать конструктуру call/apply в контексте свежего чистенького объекта, который он и вернет уже оформив в виде своего объекта?
Ответить с цитированием
  #16 (permalink)  
Старый 01.09.2012, 05:05
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от Gvozd
Разве не достаточно сделать конструктуру call/apply в контексте свежего чистенького объекта
ну я ему в скайпе предлагал подобный вариант, но он его решил отвергнуть.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #17 (permalink)  
Старый 01.09.2012, 05:56
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,577

Сообщение от Gvozd Посмотреть сообщение
тему не читай
сразу отвечай

Разве не достаточно сделать конструктуру call/apply в контексте свежего чистенького объекта, который он и вернет уже оформив в виде своего объекта?
Для этого конструкор должен быть специально подготовлен, с произвольным не пойдёт же.
__________________
29375, 35
Ответить с цитированием
  #18 (permalink)  
Старый 01.09.2012, 06:26
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

в скайпе ему, я предложил такой вариант:
function Foo( a, b, c ) {
    this.lala1 = a;
    this.lala2 = b;
    this.lala3 = c;
}
var b = Object.create( Foo.prototype );
Foo.apply( b, [ 1, 2, 3 ] );

alert( [ b.lala1 ] );
alert( b instanceof Foo );
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #19 (permalink)  
Старый 01.09.2012, 06:33
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,577

Вообще Object.create как и bind не работают сами-знаете-в-чём.)
__________________
29375, 35
Ответить с цитированием
  #20 (permalink)  
Старый 01.09.2012, 09:10
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,577

Сообщение от Maxmaxmахimus Посмотреть сообщение
подобные вещи вы можете невозбранно позаимствовать у мастерски созданной каким-то неизвестным гением чудо функции Class

И ТУТ В ТРЕД ВРЫВАЕТСЯ ДЯДЯ ЛЕША:
Function.prototype.create = function ( args ) {
	var Constructor = this;
	function Wrapper() { Constructor.apply( this, args ) }
	Wrapper.prototype = Constructor.prototype;
	return new Wrapper
}


function Cat( a, b ) {
	this.a = a;
	this.b = b;
}

var cat = Cat.create( [1, 2] )

alert( cat.a ) 					 // 1
alert( cat.constructor === Cat ) // true
alert( cat instanceof Cat ) 		// true
alert( cat.__proto__ === Cat.prototype ) // true


ну а совсем для эстетов можно делать обертку так, чтобы имя сохранялось )), так папа раньше делал в функции Class говорят, пока на него не наехали что это мыл долго)
var Wrapper = eval( '(function ' + this.name + '(){Constructor.apply(this,args)})' );



п.с. devote, че за хрень ты создал вообще))))? Я не пони как она работает, а, все пони, ты не дописал оказывается
Код с mdn
Function.prototype.construct = function (aArgs) {
    var fConstructor = this, fNewConstr = function () { fConstructor.apply(this, aArgs); };
    fNewConstr.prototype = fConstructor.prototype;
    return new fNewConstr();
};
__________________
29375, 35
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двойной вызов функции Tmin10 jQuery 8 08.12.2011 15:19
Вызов стандартного конструктора без "new" Riim Общие вопросы Javascript 12 29.05.2011 13:21
Вызов функции с неопределенным количеством аргументов DreamTheater Общие вопросы Javascript 5 22.05.2011 19:35
Явный вызов конструктора Tim Серверные языки и технологии 2 04.10.2009 23:28
Явный вызов процедуры обработки события. supchik Общие вопросы Javascript 18 27.01.2009 13:16