ruby语言的根本就是 Object,Module, Class这三个对象。而且Module,Class本身就是对象。
在任何的Object中,方法和属性是分别存储在不同的hash表里的。
而对于javascript 其根本就是一个hashtable和function。
除了一些基本类型以外(bollean, number, string),其他的东西都是Object, Object就是一个hashtable。
所以, a = {}, 和a = new Object() 是一样的。
Object中的hashtable存放变量和方法。 也就是说, 变量和方法都是存储在Object的同一个hashtable中的。
为了让function 也可以存储到Object hash中,function实际上也是一个Object。
所以如下代码是一样的。
1.
Function father(){}
father.name = "abc"
father.speak = function (){}
2.
father = new Object()
father.name = "abc"
father.speak = function (){}
为了使Object通过new 的方式生成一个新的Object,new 关键字加function 就使得function 变成了一个构造函数。返回的是一个新的Object,如下。
function Father(name, speak) {
this.name = name;
this.speak = speak;
}
fatherObj = new Father("john", function(words){
alert(words);
})
fatherObj.speak("hello!");
另外,每一个Object中都存在一个叫__proto__的link,指向object的父亲的prototype。
而prototype可以是object,也可以是function。这样就构成了prototype的chain。
function Father(){
}
Father.prototype.fatherSay = function(){
alert("from father");
}
Father.spit = function(){alert("spit")}
function Mother(){
}
Mother.prototype = Father
son = new Mother();
son.spit(); //right
son.fatherSay //not found
上面代码调用的方法查找过程:
1.查找son里有没有spit方法
2.查找son.protype里有没有spit方法
2.查找Mother.prototype里有没有spit
3.如果Mother.prototype中没有spit,接着要查找Mother.__proto__指向的Object.prototype.
分享到:
- 2008-10-07 19:13
- 浏览 828
- 评论(0)
- 论坛回复 / 浏览 (0 / 1192)
- 查看更多
相关推荐
《JavaScript语言精髓与编程实践》精选版 作者 周爱民 《JavaScript语言精髓与编程实践》这本书,最初的名字是叫《动态函数式语言精髓与编程实践》,这是作者写本书的原意。确切地说,作者并非是想讨论JavaScript...
本书通过对JavaScript语言的分析,甄别出好的和坏的特性,从而提取出相对这门语言的整体而言具有更好的可靠性、可读性和可维护性的JavaScript的子集,以便你能用它创建真正可扩展的和高效的代码。 雅虎资深...
JavaScript语言精粹完整版,想要提升的朋友有福了。
JavaScript语言与Ajax应用(第二版)-源代码-董宁-51704128
这是一份《javascript语言精粹》PDF版的压缩包,本书对于javascript的重要知识点介绍很到位,你值得拥有!
JavaScript 曾是“世界上最被误解的语言”,因为它担负太多的特性,包括糟糕的交互和失败的设计,但随着Ajax 的到来,JavaScript“从最受误解的编程语言演变为最流行的语言”,这除了幸运之外,也证明了它其实是一门...
JavaScript语言精粹_修订版.pdf
《JAVASCRIPT语言精髓与编程实践》.周爱民
JavaScript语言精粹pdf
ES是下一代JavaScript语言标准的统称,ES是下一代JavaScript语言标准的统称
JavaScript语言精粹(高清电子版)和高性能JavaScript 双语版
JavaScript 语言精髓与编程实践(完整版).pdf 高
JavaScript语言教程及实际案例JavaScript语言教程及实际案例JavaScript语言教程及实际案例JavaScript语言教程及实际案例JavaScript语言教程及实际案例JavaScript语言教程及实际案例JavaScript语言教程及实际案例...
本书通过对JavaScript语言的分析,甄别出好的和坏的特性,从而提取出相对这门语言的整体而言具有更好的可靠性、可读性和可维护性的JavaScript的子集,以便你能用它创建真正可扩展的和高效的代码。 雅虎资深...
JavaScript语言精粹.pdf
JavaScript 语言精髓与编程实践 JavaScript 语言精髓与编程实践最新书推荐
Javascript语言参考大全(包括javascript语法,Jscript教程 fileSystenObject对象教程)
JavaScript语言精粹
JavaScript语言中文参考手册JavaScript语言中文参考手册
JavaScript语言编程规范