我上课了:
var MyClass = function(property, function){
var me = this;
me.property = property;
me.function = function;
};
在另一个地方,我想添加一个引用类属性的函数,如下所示:
var myClass = new MyClass({
property: 5,
function: function(){
// do something with this.property
}
});
this
关键字未引用该对象。有没有办法我可以设置它,以便我可以通过我传入的匿名函数访问我设置的属性?
答案 0 :(得分:0)
您应该将两个参数作为两个变量传递,而不是作为对象传递,因为您的类不期望一个对象。
var myClass = new MyClass('some_property', function(){
alert(this.property);
});
此外,请勿使用function
关键字作为参考,Check this example.以下代码
var MyClass = function(prop, func){
var me = this;
me.prop = prop;
me.func = func;
};
var myClass = new MyClass('some_property', function(){
alert(this.prop);
});
myClass.func();
答案 1 :(得分:0)
这里有几个问题。
首先,function
是JavaScript中的保留字,因此不能用作var名称。保留字:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Reserved_Words
其次,您传递的是对象文字而不是两个预期的参数。所以对于myClass var语句:
var myClass = new MyClass(5, function() { // do something with this.property });
我还建议不要使用property
作为变量名,因为它有点令人困惑。