-- 高阶函数,一个高阶函数可以将函数作为参数,也可以返回一个函数。此特性让 JavaScript 程序员可以用 Java 语言所不能提供的方法来操纵函数
--动态类型,通过延迟绑定(var),JavaScript 可以更准确和更灵活
--JavaScript 用嵌套函数表示原型(相当于类)
--JavaScript 基于原型或现有的对象的实例来构造对象,而非基于类模板
--在 JavaScript 中,对象只是函数和变量的集合。每个对象并不与类型相关,所以可以自由地修改这种结构
--可以使用名为 prototype
实例变量来指定对象的基础。方法是设置 prototype
实例变量使其指向继承链的父。如此设置 prototype
之后,您所创建的对象会为未指定的那些对象继承属性和函数。这样一来,您就可以模仿面向对象的继承概念
总体上说,javascript是一种函数式语言,但是他的构造函数和原型概念间接导致了他的基于原型的继承特性。
构造对象时,将一个抽象对象的this传递并调用构造函数,设定各项的默认值返回对象并赋值给相应的变量。
查找属性时,沿着__proto__链查找
javascript中没有类的概念,一切都是对象
(1)原型对象
任意一个函数都是一个原型对象,并且担任构造函数的重任。在函数中,通过this参数来初始化各个element(new的时候会传入this参数)
(2)基于某一个原型对象的实例对象(于原型的prototype相同)
通过new调用构造函数,初始化后返回对象,再赋值,然后就可以使用了。
可以随时加入一个没有在原型初始化表里面的成员
reference
http://www.ibm.com/developerworks/cn/java/j-cb12196/
http://www.cs.rit.edu/~atk/JavaScript/manuals/jsobj/index.htm#1032301