如何从javascript函数中读取值?

时间:2016-02-29 16:20:42

标签: javascript

如果我在javascript中执行此操作

var A = function() {
    alert(this.foo);
};
A["foo"] = "bar";
A();

我希望提醒bar,但我未定义,是否有人知道如何使这项工作?

由于

3 个答案:

答案 0 :(得分:1)

this的值是调用该方法的对象(除非您使用new运算符或类似callbind)。由于您没有将该函数作为方法调用,因此它是默认对象(浏览器中为window),除非您处于严格模式。

您对范围内功能的唯一引用是A,因此您只能通过alert(A.foo)访问它。

如果您使用了命名函数表达式:

var A = function myFunction () {

然后你可以将变量myFunction本地作用于该函数,而不是A

答案 1 :(得分:1)

this指的是"父母"函数的对象,而不是函数本身。表达式A()中没有父级。为了实现这一目标,您必须明确地将A作为this值传递:

A.call(A);

它通常意味着工作的方式是:

var A = {
    alert: function () {
        alert(this.foo);
    }
};

A.foo = 'bar';
A.alert();

A中的A.alert()用作this内的alert()值。

答案 2 :(得分:0)

var A = function() {

};

A.prototype.alert = function () {
     alert(this.foo);
}

var a = new A();
a["foo"] = "bar";
a.alert();

var img = new Image();
img.onload = function() {
    stage.update();
}
img.src = "creep.png";
var creepTex = new createjs.Bitmap(img);