构造函数中的`this`-context不清楚

时间:2016-05-11 11:09:59

标签: javascript constructor

我想要的是一个带有值(clazz)和一个函数(test)的对象,其中函数提供了值。

https://jsfiddle.net/pzy9dm9x/2/

var Clazz = function(object) {
     for(o in object) {
     this[o] = object[o];
     }
  return this;
}
var Construct = Clazz({
                 clazz : "xyz",
                 test  : function () {
                           console.log(this.clazz);
                         }
                 });
var a = new Construct();
console.log(a);
a.test();

我想:xyz

我得到:TypeError: Construct is not a constructor

1 个答案:

答案 0 :(得分:1)

您的Clazz函数不返回构造函数。我觉得你其实想要像

这样的东西
function Construct() {
    Clazz.call(this, {
        clazz : "xyz",
        test  : function () {
            console.log(this.clazz);
       }
    });
}