Студопедия

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника



Следует ли в вызовеrunсохранять введённые значения как свойства объекта?




Читайте также:
  1. S:Каким элементом следует воспользоваться для выбора шрифта?
  2. S:Каким элементом следует воспользоваться для замены данных?
  3. S:Какой режим следует выбрать, чтобы отобрать 5 наибольших значений?
  4. S:Куда следует подвести указатель мыши копирования выделенной области перетаскиванием?
  5. S:Необходимо вычислить количество периодических выплат, необходимых для погашения займа, полученного под определённый процент. Какую функцию следует для этого использовать?
  6. S:Файл Excel 2007 необходимо сохранить так,чтобы он был доступен для работы в предыдущих версиях Excel 2003. Какой командой следует воспользоваться?
  7. VIII. Найдите и выпишите из текста предложения со словами it, one. Укажите значения этих слов. Переведите предложения на русский язык.
  8. XI. ПРИСПОСОБЛЕНИЕ И ДРУГИЕ ЭЛЕМЕНТЫ, СВОЙСТВА. СПОСОБНОСТИ И ДАРОВАНИЯ АРТИСТА
  9. Адекватно ли отражает настоящая декларация важность добровольчества в мире? Если нет, то какие изменения следует внести?
  10. Акустические свойства голоса

При этом метод sum() будет без параметров, и обращения в нём будут к this.a,this.b.

Свойства объекта могут со временем изменяться. Используйте это в следующей задаче.

Напишите функцию-конструктор Adder(startingValue).
Объекты, которые она создает, должны хранить текущую сумму и прибавлять к ней то, что вводит посетитель.

Более формально, объект должен:

  • Хранить текущее значение в своём свойстве value. Начальное значение свойства value ставится конструктором равным startingValue.
  • Метод addInput() вызывает prompt, принимает число и прибавляет его к свойству value.
  • Метод showValue() выводит текущее значение value.

Таким образом, свойство value является текущей суммой всего, что ввел посетитель при вызовах метода addInput(), с учетом начального значенияstartingValue.

var adder = new Adder(1); // начальное значение 1

 

adder.addInput(); // прибавит ввод prompt к текущему значению

 

adder.addInput(); // прибавит ввод prompt к текущему значению

 

adder.showValue(); // выведет текущее значение

Приватные свойства

Локальные переменные функции-конструктора, с одной стороны, доступны вложенным функциям, с другой — недоступны снаружи.

В объектно-ориентированном программировании это называется «приватный (private) доступ».

Например, в коде ниже к name имеет доступ только метод say. Со стороны объекта, после его создания, больше никто не может получить name.

 

function User(name) {

 

 

 

this.say = function(phrase) {

 

alert(name + ' сказал: ' + phrase);

 

};

 

 

 

}

 

 

 

var user = new User('Вася');

Если бы name было свойством this.name — можно было бы получить его как user.name, а тут — локальная переменная. Приватный доступ.

Замыкания никак не связаны с this

Доступ через замыкание осуществляется к локальной переменной, находящейся «выше» по области видимости.

А this содержит ссылку на «текущий» объект — контекст вызова, и позволяет обращаться к его свойствам. С локальными переменными это никак не связано.



Приватные свойства можно менять, например ниже метод this.upperCaseName() меняет приватное свойство name:

 

function User(name) {

 

 

 

this.upperCaseName = function() {

 

name = name.toUpperCase(); // <-- изменяет name из User

 

};

 

 

 

this.say = function(phrase) {

 

alert(name + ' сказал: ' + phrase); // <-- получает name из User

 

};

 

 

 

}

 

 

 

var user = new User('Вася');

 

 

 

user.upperCaseName();

 

 

 


Дата добавления: 2015-09-15; просмотров: 3; Нарушение авторских прав







lektsii.com - Лекции.Ком - 2014-2022 год. (0.013 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты