Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Обсуждений тред (https://javascript.ru/forum/offtopic/47364-obsuzhdenijj-tred.html)

ruslan_mart 14.12.2015 23:07

pnpquest, на классах писать гораздо удобнее, чем на прототипах. Там и наследование нормальное, приватные данные, super и многое другое. Да и возможностей больше. Это конечно всё на прототипах тоже можно, но жутко неудобно.

В общем, когда модули/плагины писать будешь - поймёшь. :)

Вот как я реализовываю приватные функции и переменные на прототипах:

!function(window) {

    var Private = {
        foo: 'bar',
        test: function() {
            return Private.foo + '!!!';
        }
    };

    window.MyClass = function() {
        this.fooBar = Private.test.call(this);
    };

}(window);


И как это можно написать на классах:

Class MyClass {

    private var foo:String = 'bar';
    private function test():void {
         return this.foo;
    }

    public function MyClass() {
         this.fooBar = this.test();
    }
}


P.S.: синтаксис классов на JS точно не знаю какой, так как не писал ещё, поэтому пример из AS3.

pnpquest 14.12.2015 23:25

Цитата:

Сообщение от Ruslan_xDD
Вот как я реализовываю приватные функции и переменные на прототипах:

ты написал обычное замыкание, только через жопу, примерно вот это
(function() {
    var Private = {
        foo: 'bar',
        test: function() {
            return Private.foo + '!!!';
        }
    };
   MyClass = function() {
       fooBar = Private.test()
    };
}()

разницы особой со вторым примером я не вижу, и что ты хотел этим доакзать, непонятно

pnpquest 14.12.2015 23:27

Цитата:

Сообщение от Ruslan_xDD
на прототипах:

и прототипов никаких в твоем коде нет

pnpquest 14.12.2015 23:30

Нулевые проснулись, после того как я тут ткнул, в свое время, ынтырпрайзовых мартышек рожей в говнецо, они бояться со мной спорить, молча минусики ставят, у-тю-тю.

trikadin 15.12.2015 00:11

Пользователь pnpquest забанен, за то что он foo
 
Народ, который тут сидит. Есть у нас на форуме такой товарищ под кодовым именем "foo". Этот товарищ отличается низким уровнем знания JS, неоправданно высоким ЧСВ и при этом абсолютной неспособностью к адекватному общению, проще говоря -- неадекват. Как следствие, он является персоной нон грата на форуме. Однако, в силу своей неадекватности, он регулярно пытается сюда зачем-то влезть, каждый раз ведя себя неадекватно, за что и бывает регулярно забанен. Проблема в том, что модераторов на все темы не хватает, и иногда лаг между его появлением и неизбежным баном бывает достаточно большим. Поэтому, я прошу вас сообщать о появлении неадекватных персонажей вот в эту тему с припиской "неадекват", особенно если ник персонажа похож на что-то из этого списка (это все ники foo за всё время).
  • bom-bom
  • dkstra
  • drDocument
  • foo
  • forwardonly2015
  • freee
  • fuckJS
  • fuckYankee
  • fuckjava
  • govnocoder
  • indeterm
  • jackdempsey2015
  • javaQest
  • kotlov-net
  • krutoy
  • losos100
  • nanaets
  • nbq
  • newKingOfTheBlock
  • newobject
  • newtimebigtime
  • newuser1001
  • nondeterminism
  • nosuchfile
  • nuboquest
  • pb_
  • petya
  • pidorg-from-air
  • pnpquest
  • pornoborets
  • registrant
  • sogoodweather
  • sortarray
  • terminator-101
  • theKingOfJava
  • tysonfury2015
  • vkontaktikapi

ruslan_mart 15.12.2015 00:30

pnpquest, видимо ты не понимаешь всю суть. Вся суть в контексте. Private нужен для того, чтобы ненужные методы не попали наружу.

К примеру:

var a = new MyClass();
a.test; //undefined!!!


test должен быть доступен только внутри, причём, с нужным контекстом. Поэтому мы вызываем методы Private через apply/call/bind, иначе там будет другой контекст.

А то что ты написал - чушь, ещё зачем-то переменную в глобал определил.

Складывается впечатление, что ты вообще не понимаешь для чего нужны классы, да и ничего никогда на них не писал. Просто услышал модное слово "прототипы" и говоришь тут во все темы о них, хотя на деле даже не понимаешь что это.
Как говорится, на словах ты Лев Толстой, а на деле - Лев Толстой.

ruslan_mart 15.12.2015 00:39

trikadin, ещё одного отправил в баню.

ruslan_mart 15.12.2015 12:31

И ещё одного. А он не перестаёт удивлять "орининальностью" своих никнеймов. :haha:

cyber 15.12.2015 15:11

Кто знает интерфейс Serial ATA для hdd, хуже чем Serial 3, типо Serial ATA это более старый?

Deff 15.12.2015 15:16

Я так понял что они все Serial ATA, а цифра - скорострельность
https://ru.wikipedia.org/wiki/SATA


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