如何向对象添加函数并引用其成员?

时间:2013-11-20 20:36:58

标签: javascript

我上课了:

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关键字未引用该对象。有没有办法我可以设置它,以便我可以通过我传入的匿名函数访问我设​​置的属性?

2 个答案:

答案 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作为变量名,因为它有点令人困惑。