JavaScript - объектный инициализатор?

Просто для завершения:

Я хотел убить все процессы, подключенные к определенному порту, но не процесс прослушивания

команда (в оболочке cmd) для порта 9001:

FOR /F "tokens=5 delims= " %P IN ('netstat -ano ^| findstr -rc:":9001[ ]*ESTA"') DO TaskKill /F /PID %P

findstr:

  • r для выражений и c для точной цепочки для соответствия.
  • [] * для сопоставимых пробелов

netstat:

  • a -> all
  • n -> не разрешать (быстрее)
  • o -> pid

Это работает, потому что netstat выводит исходный порт, а затем порт назначения, а затем ESTABLISHED

20
задан Geuis 8 March 2009 в 12:08
поделиться

5 ответов

Если Вы хотите создать несколько экземпляров подобных объектов, необходимо использовать простые функции конструктора (не забудьте помещать совместно использованные свойства в прототип!).

, Если Вы хотите создать отдельный объект, рассмотрите использование анонимного конструктора. Ваш пример читал бы:

var obj = new (function() {
    this.prop = function() {
        alert('This just ran.');
    }

    // init code goes here:
    this.prop();
});

Это обладает дополнительным преимуществом по литералам объектов: функция конструктора может использоваться в качестве закрытия по 'частным' переменным.

не злоупотребляют литералы объектов: они могут сделать простые вещи, простые, но сложные вещи будут чрезмерно сложными.

22
ответ дан 30 November 2019 в 00:05
поделиться

Это не возможно: obj не существует, пока целый блок не интерпретируется.

5
ответ дан 30 November 2019 в 00:05
поделиться

Я думаю, что Вы хотите попробовать что-то вроде этого:

var obj = {
    prop: function() { alert('This just ran.'); },
    init: function() { obj.prop(); }
}

Литералы объектов reqire разделенные от запятой участники без точек с запятой.

0
ответ дан 30 November 2019 в 00:05
поделиться

Это работает при передаче "этого" в функцию init?

что-то как: (непротестированный)

var obj = {
    prop:function(){ alert('This just ran.'); },
    init:(function(o){ o.prop(); })(this);
}
-1
ответ дан 30 November 2019 в 00:05
поделиться

Почему не делают Вы используете модель конструктора (на самом деле, я понятия не имею о ее корректном имени):

function Obj() {
    // Initialising code goes here:
    alert( 'Loaded!' );

    // ...

    // Private properties/methods:
    var message = 'hello',
        sayHello = function() {
            alert(message);
        };

    // Public properties/methods:
    this.prop = function() {
        sayHello();
    };

    // Encapsulation:
    this.setMessage = function(newMessage) {
        message = newMessage;
    };
}

Использование:

var instance = new Obj();
instance.setMessage('Boo');
instance.prop();
3
ответ дан 30 November 2019 в 00:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: