两耳不闻窗外事,一心只读圣贤书

愚昧的编程狂热分子……

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

对象

外物归宗,一切皆为对象(Object)——所有东西的老祖宗都是object。我用两个不同颜色的字体来划出Objectobject,前者首字母大写,后者首字母小写。为什么要这么书写呢?首先区分下“对象”和“原型”。

举例:对象=鱼,原型=生物。同时:对象=鸟,原型=生物。

可以说,鱼和鸟都是对象,也可以说他们都是生物。同样的,生物,也是一个对象(最原始的对象)。迷糊?你是人,我是人,难道我们的祖宗就不是人啊?

JavaScript中,Object对象同等于 Function对象。他们的老祖宗都是objectObject是一个存储属性,而Function是一个执行过程。【P1

就像鲤鱼(对象)和麻雀(对象),它们具备生物(原型)的特征:具有生命特征。但是又具备了相应对象的特征:游泳、飞翔。

请测试:

Code1

alert(typeof Object);

alert(typeof Function);

 

两个结果都是“function。天啊,彻底乱了。不是说Functionobject么?

在测试:

Code2

        alert(typeof Object.prototype);

        alert(typeof Function.prototype);

 

这次的结果正常了,Object的原型正是object,而Function的原型也像是我们理解的function但是考虑下

 

最后来一个测试:

Code3

        alert(Object);

        alert(Function)

 

结果:function Object()...function Function().... 。和原型一样。

 

想必所有的读者都已经彻底不知道我在做什么了。说心里话,我在对这些进行测试的时候也是茫然万分。直到……

Code4

        function object()

        {

            this.prototype = something;

            this.constructor = something;

            this.toString();

            this.valueOf();

        }

        function Object(){ }

        Object.prototype = new object();

       

        function Function(){ }

        Function.prototype = new object();

       

        function String(){ }

        String.prototype = new Object();

       

        function Number(){ }

        Number.prototype = new Object();

       and so forth............

 

 

不管你看得懂开始看不懂,都不重要,这一篇文章千万别深入理解,感觉可以明悟一丝丝便可,否则你将会越来越迷糊。重要的是,你要理解对象与祖宗。JavaScript不是那么容易的。当然也极有可能是笔者的理解错误,如带来不便,敬请见谅!包括之后相关系列的文章均为如此!

 

p1】如果你觉得分不清:object ObjectFunction,请一定要尝试以下代码,并告诉自己object代表的是本机代码(祖宗),所以我们无法声明、使用object

Code5

        Function.prototype.read = function(){};

        for(var i in Function)

            alert(i)

 

        Object.prototype.write = function(){};

        for(var i in Object)

            alert(i)

        alert(Object.prototype.isPrototypeOf(Object.prototype)); // true   
        alert(Object.prototype.isPrototypeOf(Person.prototype)); // true 

posted on 2009-03-23 14:38  Aloner  阅读(981)  评论(8编辑  收藏  举报