急,请问自定义对象的问题?<script language="javascript">
function kk(){}
var bb=new kk();
document.write (bb.toString());
</script>这里的自定义对象指的是(bb引用对象)还是指(kk()函数对象)?如何在自定义对象中创建toString()方法?如果没有在自定义对象中创建toString()方法的话,为什么会继承Object对象的toString方法,
而不继承其他内置对象的toString方法?在自定义对象中创建toString()方法,是不是会覆盖object()对象的toString的方法,好像都是toString方法,覆盖一下
还是toString方法,没什么区别啊?
最后问一个问题:<script language="javascript">
var jj=new object('sss');
</script>
这里的将'sss'写在括号里面后,就自动的转成了String()对象,相当与String('sss')最后jj.toString()输出的是sss字符串.-----------------------------------------
<script language="javascript">
var a="123";
function kk(aa){
return aa;
}
kk(a);
var jj=new kk(aa);
document.write (jj.toString());
</script>将123值传入后,kk(aa)应该就能转为String对象了,为什么jj.toString输出没东西啊?为什么object('sss')内置函数括号里面可以带字符串或数字而function kk('sss'){}自定义函数的括号里就不行

解决方案 »

  1.   

    简单回答
    这里的自定义对象指的是(bb引用对象)还是指(kk()函数对象)? 
    答:function kk(){} 这里定义的是一种数据类型,var bb=new kk(); 是定义一个变量bb,只不过这个变量是函数(实例)变量如何在自定义对象中创建toString()方法? 
    答:比如上面bb.toString=function(){...方法体...}(有可能加prototype试看,这里相当覆盖系统的toString函数)
    为什么object('sss')内置函数括号里面可以带字符串或数字 
    而function kk('sss'){}自定义函数的括号里就不行 答:object定义的是对象,function定义的是函数,函数也可以带字符串或数字,但数字做字符串时需要用引号括起来
      

  2.   

    基本上, 你的问题, 很晕.
    toString, 尝试把一个对象转换成字符串, 那么: 执行object.toString()的时候,
    如果object 是内置的类型, 或者能直接以字符串表达他的内容, 就返回object的字符串值. 如new Object('sss') 或者 new String('sss')
    如果object 不是内置类型但是又具有他的类名, 就返回[object 类名]
    如果无法识别, 直接返回[object]所有对象都继承自Object, 所以任何对象都具有Object的toString方法, 除非你在自定义对象中明确定义了toString方法.function kk('sss'){} 是定义一个Function对象, 不能用一个字符串作为参数名,
    而Object('sss') 里面的 'sss' 是参数
      

  3.   


    bb.toString=function(){...方法体...} 是给bb定义toString 方法, 而
    用myObject.prototype.toString = function(){...方法体...} 是给一个基类myObject创建toString 方法, 属于myObject类型的对象都具有这个toString 方法.
    在js里面数字和字符串并没有很精准的区别, 只不过是你把他当作数字来处理, 那他就是数字. 如果用字符串的处理方法来对待他, 那他就是字符串了.