function f1(){
    this.a=1;}
var obj_1=new fun1();//this指向obj_1
alert(obj_1.a);var obj_2=new Object();
obj_2.f1=f1;
obj_2.f1();//this指向obj_2
alert(obj_2.a);当用new关键字时this指向赋值的对象,即var obj_1=new fun1()中的obj_1
当用作方法调用时this指向调用方法的对象,即obj_2.f1()中的obj_2
单独使用时没意义,如:
function f1(){
    this.a=1;}
f1();
虽然不会报错

解决方案 »

  1.   

    可问题是string()这个函数可以单独使用 如var a=string(2);把2变为string型
      

  2.   

    String是JS中的对象,可以定义String类的对象,
    String(a)可以强制将a转换为String类对象
      

  3.   

    function string(number){
        return number.toString();
    }
    var str=string(2);//str的值为“2”~~~这样的原理啦~~
      

  4.   

    可string还可以var a=new string();这样又是一个构造函数,定义构造函数不是在定义里写this的吗
      

  5.   

    可以在string定义的时候做判断嘛~~~如果没有new~this是指向window这个对象~~