var new_object = function(){
this.a = a;
this.b = b;
this.addfunction =  function(){
return this.a + this.b;
};
}
var obj = new_object;
obj.a = 2;
obj.b = 3;
var count = obj.addfunction();
alert(count);报错:TypeError: obj.addfunction is not a function

解决方案 »

  1.   

    要实例化一下,要不然就是普通的函数调用,this绑定给window,这样就不在obj下了,所以是not a functionvar obj = new new_object();
      

  2.   

    var new_object = function(){
    this.a = 0;
    this.b = 0;
    this.addfunction =  function(){
    return this.a + this.b;
    };
    }
    var obj = new new_object();
    obj.a = 2;
    obj.b = 3;
    var count = obj.addfunction();
    alert(count);......
      

  3.   

    var obj = new_object;  //obj是个与new_object同个函数
     
    改成 var obj = new new_object();
      

  4.   

    这题出的有问题吧
    声明一个变量new_object,再声明一个变量obj并赋值为new_object,再对obj添加两个属性a和b,再调用obj的一个没有声明的方法,关键是填写代码的区域根本不会执行,怎么让返回结果为5?!
      

  5.   

    可能是最接近答案的解,但也要题目改一句才行var new_object = function(){
    var that ={
    a:0,
    b:0,
    addfunction:function(){
    return this.a+this.b
    }
    };

    return that;
    }
    /*************************************************
    这里要改题目加上()才能执行。
    */
    var obj = new_object();obj.a = 2;
    obj.b = 3;
    var count = obj.addfunction();
    console.log(count);
      

  6.   

    呵呵 
    这其实是个脑筋急转弯,答案是:/**填写代码*/
    }
    new_object.a=0;//静态变量
    new_object.b=0;//静态变量
    new_object.addfunction=function(){//静态方法
    return new_object.a+new_object.b;
      

  7.   

    人家不是让在new_object=function(){}里面添加代码吗?
      

  8.   

    问题就是这样啊http://www.hellbear.com/picturerecord/index.htmlhttp://www.hellbear.com/picturerecord/index.html
      

  9.   

    佩服 9 楼 zhu18 的机智。这里改进一下,也可以用动态。var new_object = function(){
    // ----------------------------- begin 填写代码 
    };new_object.addfunction = t;function t() {
      return this.a + this.b;
    // ----------------------------- end 填写代码
    }var obj = new_object;
    obj.a = 2;
    obj.b = 3;var count = obj.addfunction();
    alert(count);