javascript «это» использование - PullRequest
       4

javascript «это» использование

3 голосов
/ 19 августа 2010

допустим, у меня есть такой код:

var object1 = {};
object1.class1 = function() {
    this.property1 = null;
    this.property2 = 'ab';
}

в этом случае, что означает «это»? объект1 или класс1? И всякий раз, когда я хочу определить конструктор класса внутри объекта, каков наилучший способ сделать это?

Ответы [ 2 ]

2 голосов
/ 19 августа 2010

Для class1, потому что вы не можете создать объект типа object1.

Однако, если код будет:

function object1() {
    this.class1 = function() {
        this.property1 = null;
        this.property2 = 'ab';
    }
}

Вы можете иметь:

var obj = new object1();
obj.class1();
obj.property2; // => 'ab';

var cls = new obj.class1();
cls.property2; // => 'ab';

Так что это может зависеть от контекста.

1 голос
/ 19 августа 2010

Если вы называете это так:

object1.class1();

Тогда this будет означать object1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...