急急急,javscript参数问题?<script language="javascript">
function k(a,b){
document.write (this.length);
}
k(1,2);
</script>
k是对象实例,因为var k=new function Function(){}那么就是说k继承了Function()的属性和方法,k函数体里的this指的就是k这个实例对象,那么this就继承了Function()的属性和方法那么this.length输出等于0.,应该等于2才对,老子这里k的括号里有两个参数a,b为什么输出的是0,妈的B.var k=new function Function(){};
function k(a,b){
document.write (this.length);
}
this指的是k对象实例,那么k对象实例继承了Function()的属性和方法,那么k对象实例又是Object对象实例的子对象,那么k对象实例即继承了Function()的属性和方法,又继承了Object对象的属性和方法.
我他妈的受不了了,内置对象太复杂了,妈的B,谁给我推荐5本好书啊.还是vbscript的类比较爽一点...

解决方案 »

  1.   

    参数是属性?LZ不要开玩笑了,你看过JavaScript的书没有,至少网上也可以查到,要获取参数的数量是通过agruments变量来获得的。所谓的属性是这个样子的
    function k(a,b)
    {
     this.a = a;
     this.b = b;}
    this. 后面的才是属性,你说的那些是参数,请搞清楚再问,而且LZ你妈太多了,光问候你妈学不会JavaScript的
      

  2.   

    朋友,你这几天发了很多关于函数的帖子,看来有很多问题。
    <script language="javascript"> 
    function k(a,b){ 
    document.write (this.length); 

    k(1,2); //window.k(1,2);
    </script>
    首先,在这个函数里this.length指的是window.length,而结果之所以是0,因为window.length是window固定的一个属性,跟arguments什么的没有任何关系,它指的是HTML中框架的个数(frame或iframe的数目)。如果你用document.write(this.Length)之类别的属性的话,一定是undefined,那样就很好理解了。