LINUX.ORG.RU

Javascript. Приемлемо ли написать так.

 


0

1

Всем привет.

В js новичек. Вот навоял такой код:

var MyObj = {
    suboj = {
        field: 'value'
    }
};

MyObj.getValue = function() {
    return this.subobj.field;
};

Вопрос: «Корректно ли использовать в getValue() this для доступа ко вложенному обхекту или лучше использовать для этого само имя родительского объект - 'MyObj'»? И почему?



Последнее исправление: djnoob (всего исправлений: 1)

var MyObj.getValue

Так неприемлемо. MyObj.getValue - это не переменная, а проперти объекта, который хранится в переменной MyObj, которую ты уже объявил ранее, зачем ты пишешь var перед проперти? Не надо так.

Корректно ли использовать в getValue() this для доступа ко вложенному обхекту или лучше использовать для этого само имя родительского объект - 'MyObj'»? И почему?

Корректно. У твоего объекта нет никакого имени. MyObj это имя переменной в которой хранится ссылка на объект. Ты можешь разумеется использовать имя этой переменной внутри методов, но понима, что в таком случае эти твои методы будут тянуть весь скоуп, где объявлена эта самая переменная MyObj.

anonymous
()

/**
 * @constructor
 */
MyObj = function() {
  this.subobj = {
      field: 'value'
  }
};

/**
 * @return {string}
 */
MyObj.prototype.getValue = function () {
    return this.subobj.field;
};


var myObjInstance = new MyObj();
myObjInstance.getValue();
//return = 'value'

Deleted
()
var MyObj = {
    suboj = {   // ошибка
        field: 'value'
    }
};

должно быть:

var MyObj = {
    suboj: {
        field: 'value'
    }
};
surefire ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.