JavaScript Programming
JavaScript Programming
Mendel Rosenblum
CS142 Lecture Notes - JavaScript Programming
1
How do you program in JavaScript?
From Wikipedia: ... ... supporting object-oriented, imperative, and functional programming ...
Originally programming conventions (i.e. patterns) rather than language features
ECMAScript adding language features (e.g. class, => , etc.)
CS142 Lecture Notes - JavaScript Programming
2
Object-oriented programming: methods
With first class functions a property of an object can be a function
var obj = {count: 0}; obj.increment = function (amount) {
this.count += amount; return this.count; }
Method invocation: calls function and binds this to be object
obj.increment(1); // returns 1 obj.increment(3); // returns 4
CS142 Lecture Notes - JavaScript Programming
3
this
In methods this will be bound to the object
var o = {oldProp: 'this is an old property'}; o.aMethod = function() {
this.newProp = "this is a new property"; return Object.keys(this); // will contain 'newProp' } o.aMethod(); // will return ['oldProp','aMethod','newProp']
In non-method functions:
this will be the global object Or if "use strict"; this will be undefined
CS142 Lecture Notes - JavaScript Programming
4
functions are objects - can have properties
function plus1(value) { if (plus1.invocations == undefined) { plus1.invocations = 0; } plus1.invocations++; return value + 1;
}
plus1.invocations will be the number times function is called
Acts like static/class properties in object-oriented languages
CS142 Lecture Notes - JavaScript Programming
5
function are objects: Have methods
function func(arg) { console.log(this,arg); }
toString() method - return function as source string
func.toString() returns 'function func(arg) { console.log(this,arg); }'
call() method - call function specifying this and arguments
func.call({t: 1}, 2) prints '{ t: 1 } 2' apply() like call() except arguments are passed as an array - func.apply({t: 2},[2]) this is like an extra hidden argument to a function call and is used that way sometimes
bind() method - creates a new function with this and arguments bound
let newFunc = func.bind({z: 2}, 3); newFunc() prints '{ z: 2 } 3'
CS142 Lecture Notes - JavaScript Programming
6
Object-oriented programming: classes
Functions are classes in JavaScript: Name the function after the class
function Rectangle(width, height) {
this.width = width;
Not correct way of adding methods
this.height = height;
this.area = function() { return this.width*this.height; }
}
var r = new Rectangle(26, 14); // {width: 26, height: 14}
Functions used in this way are called constructors: r.constructor.name == 'Rectangle'
console.log(r): Rectangle { width: 26, height: 14, area: [Function] }
CS142 Lecture Notes - JavaScript Programming
7
Object-oriented programming: inheritance
Javascript has the notion of a prototype object for each object instance
Prototype objects can have prototype objects forming a prototype chain
Obj
Proto
Proto
. . . Proto
null
On an object property read access JavaScript will search the up the prototype chain until the property is found
Effectively the properties of an object are its own property in addition to all the properties up the prototype chain. This is called prototype-based inheritance.
Property updates are different: always create property in object if not found
CS142 Lecture Notes - JavaScript Programming
8
................
................
In order to avoid copyright disputes, this page is only a partial summary.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.
Related download
- ldapp a javascript linked data stack
- server side javascript platform
- write json object to file example script
- javascript programming
- foreach examples tutorial kart
- using the json c api real time logic
- nanodegree program syllabus full stack
- working with json in rpg scott klement
- human computer interaction design ixd
- nodejs express copyright ©
Related searches
- basic java programming examples
- java programming examples pdf
- java programming for beginners pdf
- excel programming examples
- macro programming in excel
- comcast programming schedule
- vba programming cheat sheet pdf
- excel visual basic programming examples
- programming in excel
- learning java programming pdf
- basic java programming examples pdf
- programming practice java