Гость
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как получить значения из класса? / 23 сообщений из 23, страница 1 из 1
13.06.2020, 20:40
    #39968882
Андрей159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить значения из класса?
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
        class MyString{
            constructor(str){
                this.s=str;
            }

            append(str){
                this.s+=str.toString();
                return this;
            }

            prepend(str){
                this.s=str.toString()+this.s;
                return this;
            }

            padding(str){
                this.s=str.toString()+this.s+str.toString();
                return this;
            }
        }

        const my_string = new MyString('.');


        my_string
            .append('>')
            .prepend('<')
            .padding('*');



Как получить значение из класса вместо объекта ?
console.log(my_string); // '*<.>*'
Именно таким способом (без my_string.s)

Условие:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
const my_string = new MyString('.');

        my_string
            .append('>')
            .prepend('<')
            .padding('*');

console.log(my_string); // '*<.>*'


append - справа добавляет символ
prepend - слева
padding - с обоих сторон
Можно кобмибинировать
например
my_string.append('>').append('>').append('>').append('>').append('>')
но в console.log(my_string) чтоб было только значение
...
Рейтинг: 0 / 0
13.06.2020, 21:05
    #39968888
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить значения из класса?
Андрей159,

добавь ещё метод toString
и будет тебе подобие java
...
Рейтинг: 0 / 0
13.06.2020, 21:22
    #39968894
Андрей159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить значения из класса?
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
        class MyString{
            value=''
            constructor(str){
                this.value=str;
            }

            append(str){
                this.value+=str.toString();
                return this;
            }

            prepend(str){
                this.value=str.toString()+this.value;
                return this;
            }

            padding(str){
                this.value=str.toString()+this.value+str.toString();
                return this;
            }

            toString(){
                return this.value;
            }

        }

        const my_string = new MyString('.');


        my_string
            .append('>')
            .prepend('<')
            .padding('*');

        console.log(my_string); // '*<.>*' НЕ РАБОТАЕТ



Не получается... Кажется меня пытаются развести
my_string.toString() понятно что будет работать, но мне сделали вызов "типа сделай" console.log(my_string); // '*<.>*'
может как-то класс в классе? есть способ?
...
Рейтинг: 0 / 0
14.06.2020, 12:12
    #39968971
Дмитрий Мух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить значения из класса?
Андрей159,

ага, пытаются развести на изучение декораторов, call и apply

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
class MyString {
    value = '';

    constructor(s) {
        this.value = s;
    }

    append(s) {
        this.value += s.toString();
        return this;
    }

    prepend(s) {
        this.value = s.toString() + this.value;
        return this;
    }

    padding(s) {
        this.value = s.toString() + this.value + s.toString();
        return this;
    }

    toString() {
        return this.value;
    }
}

const decorator = function(func) {
    return function(value) {
        return func(value.toString());
    }
}        
const my_string = new MyString('.');      


my_string.append('>').prepend('<').padding('*');

console.log = decorator(console.log);

console.log(my_string); // '*<.>*' РАБОТАЕТ
...
Рейтинг: 0 / 0
15.06.2020, 04:12
    #39969167
crutchmaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить значения из класса?
Андрей159,

Это лаба? Если нет - то это нормально работать не будет. Тут стрингбилдер делают так:
Код: javascript
1.
['>','<','*'].join("")


Тоже - херня, но лучше ничего нет, вроде как.
...
Рейтинг: 0 / 0
15.06.2020, 04:14
    #39969168
crutchmaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить значения из класса?
--
...
Рейтинг: 0 / 0
15.06.2020, 04:48
    #39969170
crutchmaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить значения из класса?
Андрей159,

Код: sql
1.
console.log(my_string+"");


Будет работать, нужен каст. Сам по себе console.log не делает toString.

Код: sql
1.
2.
3.
4.
console.log({a:1,b:2});
>{ a:1, b:2 }
{a:1,b:2}.toString()
>[object Object]
...
Рейтинг: 0 / 0
15.06.2020, 04:49
    #39969171
crutchmaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить значения из класса?
Дмитрий Мух,

Декоратор - это читероство. Тем более, что в других местах console.log будет сломан.
...
Рейтинг: 0 / 0
15.06.2020, 04:54
    #39969172
crutchmaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить значения из класса?
Андрей159
но мне сделали вызов "типа сделай"

Ну если они типа знают, как без декоратора, то пиши сюда.
...
Рейтинг: 0 / 0
15.06.2020, 16:58
    #39969460
Дмитрий Мух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить значения из класса?
crutchmaster
Дмитрий Мух,

Декоратор - это читероство. Тем более, что в других местах console.log будет сломан.

Сделай без декоратора и без приведения к строке
...
Рейтинг: 0 / 0
15.06.2020, 21:43
    #39969530
Compositum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить значения из класса?
---
...
Рейтинг: 0 / 0
16.06.2020, 02:17
    #39969550
Андрей159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить значения из класса?
Не знаю, что пытались, но решил при помощи переопределения console.log
Брат в IT не первый год работает, предложил подменить console.log
А дальше сам. Мне бы такое в голову не пришло так жостко подшутить. Теперь могу выводить через console.log "Пошол в ж.." при значении false :)


Код: javascript
1.
2.
3.
4.
5.
6.
console.log_old=console.log;
        console.log=function(v){
            if(typeof v['value']!='undefined')
                console.log_old(v.value);
            else console.log_old(v);
        }
...
Рейтинг: 0 / 0
16.06.2020, 10:18
    #39969615
voraa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить значения из класса?
Андрей159,
А что будет с
console.log (a,b, c) ?
тогда уж так

Код: javascript
1.
2.
3.
4.
5.
console.log_old=console.log;

console.log=function(...v){
        console.log_old(...v.map(x => x instanceof MySting? x.value : x))
}
...
Рейтинг: 0 / 0
16.06.2020, 14:03
    #39969756
Дмитрий Мух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить значения из класса?
Андрей159
Не знаю, что пытались, но решил при помощи переопределения console.log
Брат в IT не первый год работает, предложил подменить console.log
А дальше сам. Мне бы такое в голову не пришло так жостко подшутить. Теперь могу выводить через console.log "Пошол в ж.." при значении false :)


Код: javascript
1.
2.
3.
4.
5.
6.
console.log_old=console.log;
        console.log=function(v){
            if(typeof v['value']!='undefined')
                console.log_old(v.value);
            else console.log_old(v);
        }


Мда, тот ещё говнокодище.

А почему вы так и не узнали того, зачем вам задали эту задачку?
...
Рейтинг: 0 / 0
17.06.2020, 13:21
    #39970159
Андрей159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить значения из класса?
"А почему вы так и не узнали того"
Это как действие "открыть дверь в ванную" переназначить на волшебство "открыть дверь в ванную и включить стиралюную машинку". Практичного применения никакого, а чисто идиотизм проверить на способность стать Гари Поттером, поскольку язык волшебный - покажите нам волшебство. Куда такую дурь применить в реальной жизни. Есть на много полезней задачи. Лучше бы распознавание речи глубже исследовали и не кланялись к сторонним платным API.
...
Рейтинг: 0 / 0
17.06.2020, 13:27
    #39970164
Андрей159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить значения из класса?
"Мда, тот ещё говнокодище"
какой язык, такой и код. Сдесь кто как хочет так строчит. Если придумали от минимум 4 цикла, то мне лично пох кто как привык по стандарту. Тут тебе и call и apply.. Вообще насрать... Никому нет дела до твоего приличного писмеца. Если яйца не мешают, то все читабельно в любом виде
...
Рейтинг: 0 / 0
17.06.2020, 13:31
    #39970167
Андрей159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить значения из класса?
Дмитрий, это не к тебе лично. Слышу не первый раз. И старый код всегда гавнокод. Что-то новое узнал и нашел гавнокод в старой версии. Это норм
...
Рейтинг: 0 / 0
17.06.2020, 13:59
    #39970186
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить значения из класса?
Дмитрий Мух,

"Декоратор" это что-то из GoF. А в УродоСкрипте это, ведь, кажется, "карринг" называется.
...
Рейтинг: 0 / 0
17.06.2020, 14:04
    #39970189
Дмитрий Мух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить значения из класса?
Андрей159,

что-то у вас одни эмоции вместо ответа на простой вопрос
...
Рейтинг: 0 / 0
17.06.2020, 14:05
    #39970191
Дмитрий Мух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить значения из класса?
fkthat
Дмитрий Мух,

"Декоратор" это что-то из GoF. А в УродоСкрипте это, ведь, кажется, "карринг" называется.

В гугле забанили?
...
Рейтинг: 0 / 0
17.06.2020, 16:33
    #39970276
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить значения из класса?
Андрей159
Если яйца не мешают, то все читабельно в любом виде


Если яйца не мешают, можно и у знахарки лечиться, вместо квалифицированных врачей -- да? )))
...
Рейтинг: 0 / 0
17.06.2020, 16:45
    #39970280
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить значения из класса?
Дмитрий Мух,

Да, согласен, это, скорее не карринг, но, честно говоря, сейчас вся эта жаваскриптовая муть меня уже слабо волнует :))
...
Рейтинг: 0 / 0
17.06.2020, 21:57
    #39970395
Андрей159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить значения из класса?
"что-то у вас одни эмоции вместо ответа на простой вопрос"
Старею(
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как получить значения из класса? / 23 сообщений из 23, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]