Студопедия

КАТЕГОРИИ:

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


Все переменные конструктораUserстановятся приватными, так как доступны только через замыкание, из внутренних функций.




Можно ли из this.sayHi получить доступ к name из User и при этом обойтись без переименований?

function User(name) {

 

 

 

this.sayHi = function(name) {

 

// ваш код... ?

 

}

 

}

Напишите конструктор Calculator, который создаёт расширяемые объекты-калькуляторы.

  1. Первый шаг задачи: вызов calculate(str) принимает строку, например «1 + 2», с жёстко заданным форматом «ЧИСЛО операция ЧИСЛО» (по одному пробелу вокруг операции), и возвращает результат. Понимает плюс + и минус-.

Пример использования:

var calc = new Calculator;

 

 

 

alert(calc.calculate("3 + 7")); // 10
  1. Второй шаг — добавить метод addMethod(name, func), который учит калькулятор новой операции. Он получает имя операции name и функцию от двух аргументов func(a,b), которая должна её реализовывать.

Например, добавим операции умножить *, поделить / и возвести в степень**:

var powerCalc = new Calculator;

 

powerCalc.addMethod("*", function(a, b) { return a * b; });

 

powerCalc.addMethod("/", function(a, b) { return a / b; });

 

powerCalc.addMethod("**", function(a, b) { returnMath.pow(a, b); });

 

 

 

var result = powerCalc.calculate("2 ** 3");

 

alert(result); // 8
  • Поддержка скобок и более сложных математических выражений в этой задаче не требуется.
  • Числа и операции могут состоять из нескольких символов. Между ними ровно один пробел.
  • Предусмотрите обработку ошибок. Какая она должна быть - решите сами.

Итого

У объекта могут быть методы:

  • Свойство, значение которого - функция, называется методом объекта и может быть вызвано как obj.method(). При этом объект доступен как this.

Объекты могут быть созданы при помощи функций-конструкторов:

  • Любая функция может быть вызвана с new, при этом она получает новый пустой объект в качестве this, в который она добавляет свойства. Если функция не решит возвратить свой объект, то её результатом будет this.
  • Функции, которые предназначены для создания объектов, называются конструкторами. Их названия пишут с большой буквы, чтобы отличать от обычных.

 

 

Практическое задание.

 

На страницах с описанием техники (в продолжение лабораторных работ №1 и 2) должен размещаться калькулятор покупки с учётом всех выбранных товаров. Предусмотреть возможность скидок при покупке товаров на сумму свыше какого-либо значения. Итог расчёта должен появиться в элементе вида input или обычной надписи.

 

Вопросы для контроля.

  1. Что такое функция объекта?
  2. Что нужно сделать для создания собственного объекта?
  3. Каким образом создать множество однотипных объектов?
  4. Чем приватные свойства отличаются от общедоступных?
  5. Каким образом создаются методы объектов?
  6. Что такое метод объекта?
  7. Как осуществляется доступ к собственным объектам?

 



Поделиться:

Дата добавления: 2015-09-15; просмотров: 81; Мы поможем в написании вашей работы!; Нарушение авторских прав





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