最近看了一下firefox中javascript的实现,虽然源代码看不大懂,但对javascript本身有了进一步的认识。javascript是一门通用的脚本语言,它并不仅仅用在web上,而是作为嵌入的脚本语言使用的。不过我看到js除了在web上并没有很广泛的应用(和lua,python等比较的话),不知道为什么。
Prototype Based VS Class Based
javascript和c++/Java等一样,是面向对象的语言,不同之处在于c++/Java是class based OO language,而javascript是prototype based OO language。
在class based OO language中严格区分类和实例(或者说对象);而javascript中只有对象(这点和python也是不同的,在python中Class虽然是一个对象,但是python还是有类Class这个概念的,然后通过这个类创建实例的)。
Runtime Member
在C++/Java中,由于类是静态的(再编译的时候决定的),所以一个对象有哪些成员函数、成员变量是固定的,不能在运行的时候改变。而在Javascript中,一个对象可以在运行时添加和删除它的成员,你可以这么写:
var Mary = new Object;
Mary.age=10;
Mary.eat=function (food) {/*吃东西*
站长排行
学院
新闻
专栏
盈利
如果你有站长界人事变动、重组并购、变革技术出现,以及产品投诉等重要新闻线索,请告诉我们,我们会给予特别关注。
0631-3653338
站长中国编辑部
站长中国24小时新闻热线: 13256307008