Я играл с идеей использования IFFE внутри объявления объекта вместо метода init(), который я должен вручную вызывать в конце объявления. Единственная проблема, с которой я, похоже, сталкиваюсь, заключается в том, что я не знаю, как получить доступ к приватным свойствам из IFFE. Рассмотрим следующий пример:Как получить доступ к частной собственности из IFFE в javascript
function Obj() {
this.prop = 'Public property';
var _prop = 'Private property';
(function(that) {
console.log(that.prop);
console.log(that._prop); // Returns undefined
})(this);
}
obj = new Obj();
пропусканием this
в IFFE я могу получить доступ к this
сферы, но частные свойства не кажутся обложению через это. Я знаю, что могу вручную передавать отдельные свойства, но я бы предпочел решение, позволяющее мне получить доступ ко всем приватным свойствам.
Каков наилучший способ решить эту проблему?
Что делает 'console.log (_prop)' дать вам? – andrew
* ", но частные свойства, кажется, не могут быть оценены через' this' "* В этом весь смысл. Если бы вы могли получить к ним доступ через 'this', тогда все, у кого есть ссылка на объект, могли (на самом деле, вы делаете это с помощью' this.prop'). «Частные свойства» - это не что иное, как локальные переменные. Как вы получаете доступ к переменным? –
Это переменная. В JavaScript нет такой вещи, как «частная собственность». –