我想要的是一个带有值(clazz)和一个函数(测试)的对象,其中函数传递值。

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

最佳答案

您的Clazz函数不返回构造函数。我想你实际上想要的是

function Construct() {
    Clazz.call(this, {
        clazz : "xyz",
        test  : function () {
            console.log(this.clazz);
       }
    });
}

关于javascript - 构造函数中的this上下文不清楚,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37160852/

10-11 11:22