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

warren buffet 17.08.2016 09:42

Это значит ты не сможешь сделать mixin или treat, поскольку уже все внутри потомка прописано, а тебе они нужны - миксины?

Vlasenko Fedor 17.08.2016 10:48

Цитата:

Сообщение от warren buffet
Еще один умнег продублировавший конструктор в обоих объедках.

Че умник кто пишет extend(s) тот не прав.
А ну бегом учится, почти в каждой либе есть

warren buffet 17.08.2016 10:57

Тебе говорят что животное, должно быть таким

function Animal() {}

и тогда твой экстенд вырождается в сущую тавтологию.

У меня нет ни одной либы.

nerv_ 17.08.2016 11:11

Цитата:

Сообщение от рони (Сообщение 425667)
Maine,
function Animal(name) {
    this.name = name
}
Animal.prototype.getName =  function() {
        return this.name;
    }

function Dog(name) {
  this.name = name
  }

*!*Dog.prototype = Animal.prototype;*/!*
Dog.prototype.bark = function () {
        return ('Dog ' + this.name + ' is barking');
    }
var dog = new Dog('Balto');

alert(dog.getName());
alert(dog.bark());

вместо выделеной строки
Dog.prototype = Object.create(Animal.prototype);
Dog.prototype.constructor = Dog;

http://javascript.ru/forum/offtopic/...kriptorov.html

а, вообще, делайте через es6 и не мучайтесь

Vlasenko Fedor 17.08.2016 11:12

Цитата:

Сообщение от warren buffet
У меня нет ни одной либы.

Тогда вам сюда
Каждый программист на javascript должен написать свою реализацию классов.

рони 17.08.2016 11:26

nerv_,
:thanks:

warren buffet 17.08.2016 15:15

Poznakomlus, по моему гавномеру хабр стоит по горло после гитхаба, который стоит по пояс. Такшта не полезу.

warren buffet 17.08.2016 15:26

И эта тема крутится вокруг культа классов. Они когда нужны, тогда и нужны, а чаще всего нафиг не нужны, и не нужна никакая эмуляция, поскольку в жабе запросто делается то, что в каноничных языках задолбаешься оформлять, собирать и проверять. Это же веб, а не десктоп и не сервер, а клиент.

Ну поменяй метод в классе контроллера в зависимости от типа запроса на том же вебном php скажем. А на жабе можно смастерить объект в зависимости от любых условий, потом поменять еще раз от условий и так далее и он будет молотить пока страница не переплывет реку Стикс.

Это все происки десктопных программистов, тащат за собой настольный опыт на веб и создают свою культуру и культы. )))

Vlasenko Fedor 17.08.2016 16:07

Цитата:

Сообщение от warren buffet
в зависимости от типа запроса на том же вебном php скажем

это же роутер в php

define('METHOD', $_SERVER['REQUEST_METHOD']);
define('URI', parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH));

function router($url, ...$args)
{
    (empty($args[1]) || false !== strpos(METHOD, $args[0]))
    && (URI === $url || preg_match('#^' . $url . '$#iu', URI, $match))
    && die(call_user_func_array(end($args), $match ?? []));
}

router('/', function () {
    echo 'Main Micro';
});

кроме того есть reflection, а вот классы для разнообразия стоило глянуть :)

warren buffet 17.08.2016 17:27

Poznakomlus, ты можешь для разнообразия посмотреть сериал Гадалка или там Мент в законе? Ну вот, у меня такое чувство к хабрам и гитам.

Цитата:

Сообщение от Poznakomlus
есть reflection,

Об чем и речь, reflection есть.

Цитата:

Сообщение от Poznakomlus
call_user_func_array

И call_user_func_array есть.

А на жабе ничего этого не надо.

if(a)
  obj.method = one;
else
  obj.method = two;


и пользуйся всю дорогу больше ничего не проверяя. Понял?


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