这有些奇怪,我不知道该如何克服。
基本上,我在这里有这个字符串:
var s = 'var Bla = {variable: true, get: function() { return this.variable;}}; return Bla;'
并使用Function构造函数来解析此构造。
var fn = new Function(s);
它很好用,除了内部函数“ get”不再存在..就像没有解析一样?!
fn().variable -> is there and returns "true".
fn().get -> is undefined, not existing.
有任何想法吗?
PS:我编辑了原始问题,以指出真正缺少的内容。
您发布的代码与此等效:
var fn = function() {
var Bla = {
variable: true,
get: function() {
return this.variable;
}
};
return Bla;
}
因此,您不能直接使用fn.variable
或fn.get
-相反,您需要调用该函数:
var x = fn();
alert(x.get()); //alerts true
x.variable = 1;
alert(x.get()); //alerts 1
Bla
只是函数中的局部变量,不会从中返回。该代码很容易就是:
var fn = function() {
return {
variable: true,
get: function() {
return this.variable;
}
};
}
和你会得到相同的效果。调用函数后,从中返回的对象是包含variable
和的对象get
:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句