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