function Car()
{
    this.prototype.drivers = new Array("Mike","Sue"); //这个地方为什么不能用this啊?
}
Car.prototype.color = "red";
Car.prototype.doors = 4;
Car.prototype.mpg =23;Car.prototype.showColor = function()
{
alert(this.color);
}
var oCar1 = new Car();
var oCar2 = new Car();
oCar1.drivers.push("Matt");
document.write(oCar1.drivers);
document.write("<br>");
document.write(oCar2.drivers);
/*
function Test()
{
this.prototype.drivers = new Array("Mike","Sue");//我举了个反例这个地方可以用this啊?
}*/

解决方案 »

  1.   

    书上不说:"this关键字总是指向调用该方法的对象,在上面的程序当中this其实就等于Car啊"
    为什么用Car可以而用this不可以啊?
      

  2.   


     this.drivers = new Array("Mike","Sue");//可以用this 高级程序设计的例子?
      

  3.   

    只有函数对象才有prototype属性
      

  4.   

    晕了,晕了,下面的代码为什么又不行了啊?刚才应当可以的,如下:
    <script language="javascript"> 
    function qq()
    {
    qq.color = function()
    {
    alert("red")
    };
    }
    qq.color();
    </script>
      

  5.   

    <script language="javascript"> 
    function qq()
    {
        this.color = function()
        {
                alert("red")
        };
    }
    var aa = new qq;
    aa.color();
    </script>
      

  6.   

    在qq函数体执行前,qq是没有color这个属性的
    你可以先执行下qq,for example<script language="javascript"> 
    function qq()
    {
        qq.color = function()
        {
                alert("red")
            };
    }
    qq();
    qq.color();
    </script>
      

  7.   

    不行,还是有点不明白,那么下面的代码,又怎么解释啊?如下:
    function qq()
    {
        qq.prototype.color = function()  //把这一行换为:qq.color = function()为什么会报错啊?
        {
                alert("red")
        };
    }
    var Test = new qq();
    Test.color();
      

  8.   

    qq.prototype.color = function()  
    把这一行换为:qq.color = function()也不会报错,是你执行Test.color()是出错,
    你要明白qq本身是个对象,它有自己的属性,这里的color函数,但是Test没有color属性我在你的另外一个贴中给你推荐了网址,关于javascript对象模型的,你可以看看function qq()
    {
        qq.prototype.color = function()  //把这一行换为:qq.color = function()为什么会报错啊?
        {
                alert("red")
        };
    }
    var Test = new qq();
    //Test.color();
    qq.color();
      

  9.   

    10楼代码还有地方没改,sorryfunction qq()
    {
        //qq.prototype.color = function() 
        qq.color = function()
        {
                alert("red")
        };
    }
    var Test = new qq();
    //Test.color();
    qq.color();
      

  10.   


    function Car()
    {
        Car.prototype.drivers = new Array("Mike","Sue"); //这个地方为什么不能用this啊?
    }
      

  11.   


    如3楼所答,this只是一个Car对象,不具有prototype属性(当然你可以自己添加),但是Car作为一个函数对象,系统默认其有prototype属性