押30分赌toString是Object.prototype的方法.下注了啊,买定离手...

解决方案 »

  1.   

    嘿嘿。。偶胜利了。。IE的话
    window也有toString
    但是window.toString != Object.prototype.toString
    因为window对象不属于Object对象。。FF的话
    window也有toString
    但是window.toString != Object.prototype.toString
    并且window对象 instanceof Object
    以下有case
    <script type="text/javascript">
    Object.prototype.toString = function () {
    return "30分到手";
    };var o1 = {};
    alert(o1);
    alert(window instanceof Object && window.toString());
    </script>
      

  2.   

    由此证明toString不一定是Object.prototype.toString^o^
      

  3.   

    alert(typeof Object.prototype.toString);
    alert(Object.hasOwnProperty("toString"));
      

  4.   

    您自己看 x:\WINDOWS\system32\jscript.dll func, object, string, array, ...都有提交 toString()
      

  5.   

    属于Object类.
    ECMA-262么有定义这个值
    不同的ECMAScript实现具有不同的值
    -----以上摘自JS高级程序设计
    -_-!!
      

  6.   

    ECMA / W3C 定义的东西, 一堆没人遵守...
      

  7.   

    O_O
    alert(Object.hasOwnProperty("toString"));
    hasOwnProperty检测对象下时候有某方法。
    但是不能检测原型的方法这里虽然证实了Object的toString属于原型。。
    但是它不属于Object.prototype可以测试以下codeObject.prototype.toString = function () {
    return "30分到手";
    };alert(Object.toString());
      

  8.   

    昂。。经过测试
    Object.toString() 属于 Function.prototype ^o^
    Function.toString() 也属于 Function.prototype<script type="text/javascript">
    Function.prototype.toString = function () {
    return "Object";
    };Object.prototype.toString = function () {
    return "Function"
    };alert(Object.toString()); //属于Function原型
    alert(Function.toString()); //属于Function原型
    alert((function () {}).toString()); //属于Function原型
    alert({}); //属于Object原型//哈哈看来我们的Function还是最凶悍的...它最大....alert(window.toString()); //但是window document location (以下省略若干) 都属于另一个原形滴...
    </script>
      

  9.   

    Object.prototype.toString = function () {
    return "30分到手";
    };alert(Object.toString());//这能说明什么问题呢?
    var o = {};
    alert(o.toString());//改变的toString方法影响到这里的结果
      

  10.   

    <SCRIPT LANGUAGE="JavaScript">
    <!--
    Object.prototype.test = 'aaaa';
    alert(Function.prototype.test);
    //-->
    </SCRIPT>
      

  11.   

    应该是
    Object.prototype
    Function.prototype
    Object-Function-其他预定义类
      

  12.   

    typeof Object.toString 是啥? function嘛,function再toString当然是调用Function原形的toString了,测试是错的,结论也是错的。
      

  13.   

    to cymple(什么时候才能升星)
    因为Function.prototype属于Object对象的事例所以出现那种效果。。
    demo :alert(Function.prototype instanceof Object);alert(Object.toString());//这能说明什么问题呢?
    这里说明调用了Function.prototype.toString因为因为是Object对象的事例所以它的toString === Object.prototype.toString
    但是function的话 属于Function.prototype.toString
    系统对象的话。。属于另外一个未知的原型。。这样就有3种可能。。:D
      

  14.   

    typeof Object.toString 是啥? function嘛,function再toString当然是调用Function原形的toString了,测试是错的,结论也是错的。它的toString虽然是function
    但是我没有
    Object.toString.toString()啊我是Object.toString()
    所以结论没有问题吧?
      

  15.   

    ...路过...
    接口是怎么用的呀, 有没有可能就是接口实现的?
    那接口实现的是不是都各有某某方法.....
    如果不是接口实现的...那写程序的人是不是不OOP了, 不OOP是不是不好,,,那是不是就是接口?
      

  16.   

    不知啊
    <script type="text/javascript">
    Function.prototype.toString = function () {
    return "Object";
    };Function.prototype.text = 'aaaa';Object.prototype.toString = function () {
    return "Function"
    };Object.prototype.text = 'bbbb';alert(Object.toString());
    alert(Function.toString());
    delete Function.prototype.toString;
    alert(Object.toString());
    alert(Function.toString());alert(Object.text);
    alert(Function.text);
    delete Function.prototype.text;
    alert(Object.text);
    alert(Function.text);
    /*
    呵,看来是理解错了...
    昂...看来有两种情况一种是非系统对象的Function Object 的事例toString
    还有一种是系统对象的toString这么说来的话,从测试结果上看...是Object-Function
    因为Function级别比Object第,所有后事例化,才导致优先执行Function的原型成员
    */
    </script>
      

  17.   

    不过貌似我和梅老师都理解错了。。哈哈。。和typeof Object.toString无关啊。。
    主要是因为它先执行了Function.prototype.toString
    所以才会导致是系统函数。
    :D
      

  18.   

    打错俩字。。因为Function级别比Object低,所以后事例化,才导致优先执行Function的原型成员偶飘走啦
      

  19.   

    1.跟window没有关系
    2.javascript是Prototype-Based 不是Class-Based
    3.由于javascript是Prototype-Based 所以没有因为Function级别比Object低与
    Function是Object子类等等的说法
    4.使用Object.toString,调用的过程为new Object.prototype.toString.constructor().toString
    5.typeof Object.prototype.toString.constructor //return function 
    6.也就是说toString为Function.prototype.toString,
    7.也就是说各个对象的prototype fun继承了Function.prototype
    8.要打我吗?我推翻了你提的问题
      

  20.   

    迷糊。。tu nathena(凤)你说的不对吧?
    我测试的是alert(Object.toString());
    不是alert(Object.toString);
    你仔细看清楚2007-07-26 12:12:38
    这个时间的回复
      

  21.   

    ...
    从已被实现的JS环境理解 和 从实现JS环境理解肯定会不一样的....
      

  22.   

    to muxrwc(需时越兔) ( 两星(中级)) 信誉:100
    仔细看了看是不对,不过不是你说的那个不对
    是这个Object.prototype,
    即搂主的说的toString是object的还是object.prototype的我选后面
    而不是我上次说的Function.prototype
    原因还是上次说的一样
    1.js是prototype-base语言。
    2.js可以动态的添加property 
    3.运行过程为先查找实例是否含有指定名字的property,如果没有那么就查找它的原型对象(prototype),而对象的prototype其实也是个对象,也有自己的prototype,这样一直往上查找直到找到这个指定名字的property,如果当上朔的prototype为null时还没有找到该property,那么就会undefined
    4.说不清楚那给个例子
    <script>
    //假设是Object.toString 那么重写他
    Object.toString=function(){alert("是Object.toString  并重写了他")};
    var o = new Object()
    // 调用的是Object.prototype.toString
    // 可以用alert(o.toString())测试
    o.toString()  
    </script>
    再来个比较下
    <script>
    //重写Object.prototype.toString
    Object.prototype.toString=function(){alert("是Object.prototype.toString  并重写了他")}
    o.toString()
    </script>
    5.这次够清楚了吧
      

  23.   

    <script>
    //重写Object.prototype.toString
    Object.prototype.toString=function(){alert("是Object.prototype.toString 并重写了他")}
    var o = new Object()
    o.toString()
    </script>
      

  24.   

    昂。。米。。我在和M2前辈盖楼玩呢。。
    Object的事例对象会继承Object.prototype.toString
    而Function的事例对象会先继承Object.prototype.toString
    然后在继承Function.prototype.toString
    我给一个清晰整洁的测试DEMO:Dhttp://community.csdn.net/Expert/topic/5679/5679505.xml?temp=.871731
      

  25.   

    Object在js本身中是最大的。但在浏览器的宿主环境中,IE和FF是有不同的,你把Object原型中的toString()干掉,IE会去找window.toString(),看上去Object继承了window上的不少东西;而FF不会,Object就是最大。
      

  26.   

    但谁BT呢?
    我觉得显然是IE,M$自己有个WScript/CScript,作为宿主,Object也没有说继承了WScript/CScript里的什么方法。
    感觉M$有些自相矛盾,估计是两帮人干的?呵呵
      

  27.   

    :D,昂。没测试FF。。FF,没有继承系统默认的OBJECT
    合起来就是WCscript???这个偶喜。
      

  28.   

    你把Object原型中的toString()干掉,IE会去找window.toString();
    ================================================================
    抱歉,
    说这句话没经大脑。window.toString = function()
    {
      return "hack window";
    }alert(window);FF还真去执行了window.toString(),而IE没有。
    咱们再去alert(window.constructor); // return Window;
    typeOf window.constructor 是 function;
    那照这样说连window也是Object继承来的?不是。
    因为delete Object.prototype.toString;后,alert(window)还是可以的。
    那只能说这个。浏览器环境太复杂
      

  29.   

    啥玩意嘛...
    var a = new Object();
    var b = new Object();
    alert(a.toString===Object.prototype.toString);
    alert(a.toString===b.toString);自己看...
    ps...梅老大幽默~~
      

  30.   

    今天来又想了想,可能IE里window对象不是类构建的,而FF里window对象是Window的实例,
    IE的window里有toString方法但“重载”后非显式调用toString仍然会调用那个native code。
    谁来解释一下?
      

  31.   

    还有呢...
    WCscript只不过是win系统的脚本宿主...
    跟IE没关系...
    他们都调用那个叫M$ScriptControl的控件执行脚本...
      

  32.   

    他们都调用那个叫M$ScriptControl的控件执行脚本...
    =================================================
    这点还真不知道了,能否介绍下?
      

  33.   

    sorry...净想着吃饭了...
    说话又没过大脑...
    好像也不是调用那个控件的...
    system32下面有个msscript.ocx的东西...
    自己研究下吧...不过还是不要去绕这些底层细节了...
    总之,我在2007-08-09 11:31:45这个时间发的那段代码...
    在IE和FF都是返回两个true的...
    我觉得这就可以说明问题了...
      

  34.   

    要搞清楚 Object 和 Object.prototype'Object'是一个constructor,是一个Function的实例,也就是说,'Object'依赖'Function.prototype'如果定义
    function MyClass()
    {
    }
    var inst=new MyClass();关系可以这样看待:
    Object.prototype.toString
    -->Function.prototype.toString (有默认值)
    ----->Object.toString
    ----->Array.toString
    ----->MyClass.toString
    -->Array.prototype.toString (有默认值)
    ----->[1,2,3].toString
    -->MyClass.prototype.toString
    ----->inst.toString
    当Object.prototype.toString改变时, 所有toString都会被影响. 但其影响能被覆盖.
    当Function.prototype.toString改变时, 所有函数都会被影响, 但函数类的实例不会被影响上面的关系图中,因为Array.prototype.toString已经有默认的值,
    所以无论Object.prototype.toString是如何,
    [1,2,3].toString 都是返回 "1,2,3"因为Function.prototype.toString也是有默认的值,
    所以即使设置了自定义的Object.prototype.toString,
    Array.toString(),MyClass.toString()依然是返回函数表达式字符串.
      

  35.   

    还是没有弄清楚,Object与Function的关系