<script>
function Person (name,age,sex){
       this.name = name;
       this.age = age;
       this.sex = sex;
       }
       
function p1 (name,age,sex){
       Person.apply(this,[name,age,sex]);
       alert(typeof this == Person); //我这里测试了 p p1 Person 都是false 很郁闷,高手指点一下吧 谢谢       }
       
var p = new p1("张三",24,"男");
p.name();
</script>

解决方案 »

  1.   

    this,始终指向调用它的对象
    这里的this 指向的是window
      

  2.   

    抱歉,没看清楚你这里执行后,this指向的p这个对象
      

  3.   

    在51JS论坛问 他们说alert(typeof this == Person); 这样的判断方法不对..
    alert(this instanceof p1);
    用这个判断是p1
      

  4.   

    你可以酱紫看看:
    <script>
    function Person (name,age,sex){
          this.name = name;
          this.age = age;
          this.sex = sex;
          }
         
    function p1 (name,age,sex){
          Person.apply(this,[name,age,sex]);
          alert(this);
          }
      
    p1("张三",24,"男");   
    var p = new p1("张三",24,"男");
    </script>
      

  5.   

    lz想必是测试一下this是指向哪个‘类’的实例,这应该用this instanceof Person,因为typeof方法返回的是该对象的类型,并且返回的结果是string类型,所以你用这种方法所得到的返回值是字符串object
      

  6.   

    所得的结果应该是this指向p1,即是p1的实例