Есть ли известная ошибка в библиотеке сеансов CodeIgniter 2.1.0? Почему меня выгнали? [закрыто]

Предположим, что у вас есть эта функция:

var Foo = function(){
  this.A = 1;
  this.B = 2;
};

Если вы вызываете это как автономную функцию следующим образом:

Foo();

Выполнение этой функции добавит два свойства в window (A и B). Он добавляет его в window, потому что window - это объект, который вызывает функцию, когда вы ее выполняете, и this в функции - это объект, который вызывает эту функцию. В Javascript по крайней мере.

Теперь вызовите его следующим образом: new:

var bar = new Foo();

Что происходит, когда вы добавляете new к вызову функции, создается новый объект (только var bar = new Object()) и что функция this внутри функции указывает на только что созданную Object, а не на объект, вызывающий эту функцию. Таким образом, bar теперь является объектом со свойствами A и B. Любая функция может быть конструктором, она не всегда имеет смысл.

10
задан Peter Mortensen 3 January 2017 в 19:14
поделиться