Prototype中的对象

时间:2016-06-01 23:37:38

标签: javascript

我在原型中创建了一个对象,我尝试使用this从构造函数中访问变量,但警报返回undefined

构造

function Example() {
    this.param1 = 'test';
}

原型

Example.prototype = {
    constructor: Example,
    obj: {
        sample:function() {

            alert(this.param1); // error undifined

        }
    }
};

实例化

var o = new Example();
o.obj.sample();

非常感谢任何建议。

1 个答案:

答案 0 :(得分:2)

你可以这样做

function Example() {
    this.param1 = 'test';
}
Example.prototype = {
    constructor: Example,
    obj: {
        sample:function(){
            alert(this.param1); // error undifined
        }
    }
};

var o = new Example();
o.obj.sample.call(o); // <--- I use "call" to supply the context. In this case, the context would be "o"
// or
o.obj.sample.bind(o)(); // or "bind" the context, in this case "o"