Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как правильно передавать аргументы в прототипы (https://javascript.ru/forum/misc/64509-kak-pravilno-peredavat-argumenty-v-prototipy.html)

Vlasenko Fedor 17.08.2016 18:27

Цитата:

Сообщение от warren buffet
Понял?

Нет, так в пыхе можно так-же написать подобно
function test($a)
{
  $obj = new stdClass();
  $one = function () use ($a) {
    var_dump($a);
    echo 'One', PHP_EOL;
  };
  $two = function () use ($a) {
    var_dump($a);
    echo 'Two', PHP_EOL;
  };
  // ваш код
  if ($a)
    $obj->method = $one();
  else
    $obj->method = $two();

  return $obj;
}

test(true)->method; //bool(true), One 
test(false)->method; //bool(false), Two
или так
function test($a)
{
		$obj = new stdClass();
		$one = function ($value) use ($a)
		{
				var_dump($a, $value);
				echo 'One', PHP_EOL;
		};
		$two = function ($value) use ($a)
		{
				var_dump($a, $value);
				echo 'Two', PHP_EOL;
		};
		// ваш код
		if ($a)
		{
				$obj->method = $one;
		}
		else
		{
				$obj->method = $two;
		}

		return $obj;
}

(test(true)->method)('ya');
(test(false)->method)('hi');

ведь то-же красивый язык

warren buffet 18.08.2016 11:33

Цитата:

Сообщение от Poznakomlus
$obj = new stdClass();


Ты крут, чо. Ты хоть знаешь что такое stdClass? Не парься, я расскажу. Это array, и даже не ArrayObject, а просто array c доступом к элементам по -> Ну то есть теперь тебе надо дописать интерфейсы наследования через какой-нибудь элемента массива с именем типа prototype и все такое, чтобы сделать из этого stdClass что-то похожее на js объект.

warren buffet 18.08.2016 11:47

И вообще не сравнивай х с пальцем. Поэтому я не применяю .prototype, из-за его изоляции от контекста, в котором можно сказать вся милота жабы скрипучей. А чтобы зохавать контекст в php - это надо передавать this в анонимную функцию и, вроде новые версии это умеют, но опять же через ж.

Vlasenko Fedor 18.08.2016 14:00

Цитата:

Сообщение от warren buffet
Ты крут, чо

Да, вижу что и ты признал :lol:
Цитата:

Сообщение от warren buffet
Ты хоть знаешь что такое stdClass

Иногда пишу свои расширения под пых по надобности :)
Цитата:

Сообщение от warren buffet
Ну то есть теперь тебе надо дописать

Мне ничего не надо. Ты описываешь свое видение.
Цитата:

Сообщение от warren buffet
А чтобы зохавать контекст в php - это надо передавать this в анонимную функцию

Вам сюда http://php.net/manual/ru/closure.bind.php
Не надо из php делать js
У каждого языка есть свое назначение

warren buffet 18.08.2016 14:47

Цитата:

Сообщение от Poznakomlus
У каждого языка есть свое назначение

Например у русского языка назначение молоть чушь. А у английского языка назначение - информировать. Согласен.

warren buffet 18.08.2016 19:11

Одни клованы на форуме остались блин и, по-моему, никакой надежды что цирк сюда вернется. Было бы смешно, если бы не было печальки.


Часовой пояс GMT +3, время: 12:46.