var foo = function () { this.bar = 1; }
>> foo.bar
undefined
如何访问函数的属性?
答案 0 :(得分:1)
您的语法错误:
function foo() { this.bar = 1; }
var a = new foo();
a.bar; // 1
答案 1 :(得分:1)
这是一个定义。你需要实例化它。
var foo = function () { this.bar = 1; }
>> new foo().bar
答案 2 :(得分:0)
这里的问题是你只定义了foo
而没有实际执行它。因此,行this.bar = 1
尚未运行,并且无法定义bar
。
下一个问题是,当您运行foo
时,它将需要一个this
将被定义的上下文。例如
var x = {}
foo.apply(x);
x.bar === 1 // true
或者您可以将foo
作为构造函数运行,并在结果上访问bar
var x = new foo();
x.bar === 1 // true
答案 3 :(得分:0)
另一种选择:
var foo = function () { this.bar = 10; return this; } ();
console.log(foo.bar);
在这里阅读自我执行功能:
What is the purpose of a self executing function in javascript?