Слайд 1JavaScript как объектно-ориентированный язык программирования
Сергей Байдачный
Специалист по разработке программного обеспечения
Microsoft
Ukraine
Sergiy.Baydachnyy@microsoft.com
Слайд 2Зачем?
Существующий код не идеален
HTML 5 предоставляет больше возможностей, а аппетит приходит
во время еды
JavaScript не привязан к платформе -> существующих фреймворков хватать не будет
Слайд 4А теперь немного о JavaScript
JavaScript является языком объектно-ориентированного программирования
В JavaScript нет
классов
JavaScript обладает следующими областями видимости:
Глобальная
Функции
Слайд 5Объекты
var a={
firstName:
"Sergey", lastName: "Baydachnyy",
GetName: (function(){
return this.firstName+" "+this.lastName;
})
};
a.GetAge=(function(){return 18;});
delete a.GetName;
Слайд 6Объекты
function Person(fName,lName){
this.firstName=fName;
this.lastName=lName;
this.getName=(function(){
return this.firstName+" "+lastName;
});
}
var a=new Person("Sergey","Baydachnyy");
Слайд 7Икапсуляция
function Person(fName,lName){
var internalF=(function(){
return fName+" "+lName;
});
this.firstName=fName;
this.lastName=lName;
this.getName=(function(){
return internalF();
});
}
var a=new Person("Sergey","Baydachnyy");
Слайд 8Прототип
prototype – свойство, ссылающееся на объект-прототип для всех создаваемых объектов
Person.prototype.getAge=(function(){
return 18;
});
Слайд 9Наследование
Возможно несколько вариантов
Один из вариантов реализуется с помощью свойства prototype
Developer.prototype =
new Person();
Слайд 10Шаблон Module
(function () {
var a = 10;
function somePrivateStuff() {
a = 15;
}
WinJS.Navigation.navigate("/html/firstPage.html");
})();
Слайд 11Defining Objects with WinJS
var MyThing = WinJS.Class.define(
function() { },
{
method1: function() { }
});
Слайд 12Objects as Namespaces With WinJS
WinJS.Namespace.define("MyNamespace", {
somethingUseful: function () {
}
});
MyNamespace.somethingUseful();