OOP part2. Constructors презентация

Содержание

Constructor functions when invoked with new, functions return an object known as this you can modify this before it’s returned

Слайд 1Constructors


Слайд 2Constructor functions
when invoked with new, functions return an object known as

this
you can modify this before it’s returned


Слайд 3Constructor functions
var Person = function(name) {
this.name = name;
this.getName =

function() {
return this.name;
};
};

Слайд 4Using the constructor

var me = new Person(“Dmitry");
me.getName(); // “Dmitry"




Слайд 5Constructors…
… are just functions


Слайд 6A naming convention
MyConstructor
myFunction


Слайд 7constructor property
>>> function Person(){};
>>> var jo = new Person();
>>> jo.constructor ===

Person
true



Слайд 8constructor property
>>> var o = {};
>>> o.constructor === Object
true
>>> [1,2].constructor ===

Array
true



Слайд 9Built-in constructors
Object
Array
Function
RegExp
Number
String
Boolean
Date
Error, SyntaxError, ReferenceError…


Слайд 11Prototype


Слайд 12Prototype…
… is a property of the function objects


Слайд 13Prototype
>>> var boo = function(){};
>>> typeof boo.prototype
"object"


Слайд 14Overwriting the prototype

>>> boo.prototype =
{a: 1, b: 2};


Слайд 15Use of the prototype
The prototype is used when a function is

called as a constructor


Слайд 16Prototype usage
var Person = function(name) {
this.name = name;
};
Person.prototype.say = function(){

return this.name;
};



Слайд 17Prototype usage
>>> var dude = new Person('dude');
>>> dude.name;
"dude"
>>> dude.say();
"dude"



Слайд 18Prototype usage
say() is a property of the prototype object
but it behaves

as if it's a property of the dude object


can we tell the difference?



Слайд 19Own properties vs. prototype’s

>>> dude.hasOwnProperty('name');
true
>>> dude.hasOwnProperty('say');
false



Слайд 20isPrototypeOf()

>>> Person.prototype.isPrototypeOf(dude);
true
>>> Object.prototype.isPrototypeOf(dude);
true


Слайд 21Inheritance


Слайд 22Parent constructor
function NormalObject() {
this.name = 'normal';
this.getName = function() {

return this.name;
};
}


Слайд 23Child constructor
function PreciousObject(){
this.shiny = true;
this.round = true;


}

Слайд 24The inheritance
PreciousObject.prototype =
new NormalObject();


Слайд 25A child object
var crystalBall = new PreciousObject();
crystalBall.name = 'Crystal Ball.';

crystalBall.round; //

true
crystalBall.getName(); // "Crystal Ball."


Слайд 26Inheritance by copying


Слайд 27Two objects
var shiny = {
shiny: true,
round: true


};
var normal = {
name: 'name me',
getName: function() {
return this.name;
}
};

Слайд 28extend()
function extend(parent, child) {
for (var i in parent) {


child[i] = parent[i];
}
}


Слайд 29Inheritance
extend(normal, shiny);
shiny.getName(); // "name me"


Слайд 30Prototypal inheritance


Слайд 31Beget object
function object(o) {
function F(){}
F.prototype = o;
return new

F();
}



Слайд 32Beget object
>>> var parent = {a: 1};
>>> var child = object(parent);
>>>

child.a;
1
>>> child.hasOwnProperty(a);
false


Слайд 33Wrapping up…


Слайд 34Objects
Everything is an object (except a few primitive types)
Objects are hashes
Arrays

are objects


Слайд 35Functions
Functions are objects
Only invokable
Methods: call(), apply()
Properties: length, name, prototype


Слайд 36Prototype
Property of the function objects
It’s an object
Useful with Constructor functions


Слайд 37Constructor
A function meant to be called with new
Returns an object


Слайд 38Class
No such thing in JavaScript


Слайд 39Inheritance
Classical
Prototypal
By copying
… and many other variants


Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика