КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Все переменные конструктораUserстановятся приватными, так как доступны только через замыкание, из внутренних функций.
Можно ли из this.sayHi получить доступ к name из User и при этом обойтись без переименований?
| this.sayHi = function(name) {
|
Напишите конструктор Calculator, который создаёт расширяемые объекты-калькуляторы.
- Первый шаг задачи: вызов calculate(str) принимает строку, например «1 + 2», с жёстко заданным форматом «ЧИСЛО операция ЧИСЛО» (по одному пробелу вокруг операции), и возвращает результат. Понимает плюс + и минус-.
Пример использования:
var calc = new Calculator;
|
alert(calc.calculate("3 + 7")); // 10
| - Второй шаг — добавить метод 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");
|
- Поддержка скобок и более сложных математических выражений в этой задаче не требуется.
- Числа и операции могут состоять из нескольких символов. Между ними ровно один пробел.
- Предусмотрите обработку ошибок. Какая она должна быть - решите сами.
Итого
У объекта могут быть методы:
- Свойство, значение которого - функция, называется методом объекта и может быть вызвано как obj.method(). При этом объект доступен как this.
Объекты могут быть созданы при помощи функций-конструкторов:
- Любая функция может быть вызвана с new, при этом она получает новый пустой объект в качестве this, в который она добавляет свойства. Если функция не решит возвратить свой объект, то её результатом будет this.
- Функции, которые предназначены для создания объектов, называются конструкторами. Их названия пишут с большой буквы, чтобы отличать от обычных.
Практическое задание.
На страницах с описанием техники (в продолжение лабораторных работ №1 и 2) должен размещаться калькулятор покупки с учётом всех выбранных товаров. Предусмотреть возможность скидок при покупке товаров на сумму свыше какого-либо значения. Итог расчёта должен появиться в элементе вида input или обычной надписи.
Вопросы для контроля.
- Что такое функция объекта?
- Что нужно сделать для создания собственного объекта?
- Каким образом создать множество однотипных объектов?
- Чем приватные свойства отличаются от общедоступных?
- Каким образом создаются методы объектов?
- Что такое метод объекта?
- Как осуществляется доступ к собственным объектам?
|