Этот ответ не имеет прямого отношения к вопросу, но вам может быть интересно узнать, что этот тип синтаксиса не является специфическим для функций. Например, мы всегда можем сделать что-то вроде этого:
alert(
{foo: "I am foo", bar: "I am bar"}.foo
); // alerts "I am foo"
Относительно функций. Поскольку они являются объектами, которые наследуются от Function.prototype, мы можем делать такие вещи, как:
Function.prototype.foo = function () {
return function () {
alert("foo");
};
};
var bar = (function () {}).foo();
bar(); // alerts foo
И вы знаете, нам даже не нужно заключать в скобки функции для их выполнения. Во всяком случае, до тех пор, пока мы пытаемся присвоить результат переменной.
var x = function () {} (); // this function is executed but does nothing
function () {} (); // syntax error
Еще одна вещь, которую вы можете сделать с функциями, как только вы их объявите, - это вызвать над ними оператор new
и получить объект. Следующее эквивалентно:
var obj = new function () {
this.foo = "bar";
};
var obj = {
foo : "bar"
};
Вы смотрели все адреса в ответе , отбросить те из семейства InterNetworkV6 и оставить только IPv4?