Recently I read Bruce Tate said JavaScript’s language features at IBM developerwork Crossing borders.

In his article, he explores the features of JavaScript that make it so wonderfully attractive:

* Higher-order functions. A high-order function is one that either takes functions as arguments or returns a function. This feature lets JavaScript programmers manipulate functions in ways that the Java language can’t.

* Dynamic typing. By delaying binding, JavaScript can be more concise and flexible.

* A flexible object model. JavaScript’s object model uses a relatively uncommon approach to inheritance — called prototypes — instead of the Java language’s more common class-based object model.

This reminds me the JavaScript is not just dynamic web language but it also has OOP feature. Here is some JavaScript experts tell us.

Object Hierarchy and Inheritance in JavaScript
Use functional programming techniques to write elegant JavaScript
JavaScript:The World’s Most Misunderstood Programming Language
Object Oriented Programming in JavaScript
Object-Oriented Programming with JavaScript, Part I: Inheritance
Object-Oriented Programming with JavaScript, Part II: Methods