javascript 对象中共享变量的最佳实践

天臣

在 javascript 方法中声明一个变量似乎将它的范围限定到 window-object,有什么办法可以改变这种行为?

var mf = new Array();

mf.init = function () {
    oldIh = 10;
    this.oldIh = 20;
    alert(oldIh); //outputs 10, would prefer 20...
    alert(window.oldIh); //outputs 10.        
}
天臣

挺纠结的。。

1)不允许使用var来声明this.varaibleName

2)在方法内部使用var定义了一个仅限方法的变量。

3)不使用VAR也不创建了一个窗口变量(不严格模式允许)

4) 解决方案是使用this.variableName而不使用var这即使在严格模式下也很好

'use strict';

var mf = new Array();

mf.init = function () {
    this.oldIh = window.innerHeight;
    //Not allowed:
    //var this.oldIh = window.innerHeight;
    //
    //Creates a var for this method only
    //var oldIh = 123;
    //
    //Creates a window-variable (not allowed in strict mode)
    //oldIh = 123;
}

mf.getInnerHeight = function () {
  return this.oldIh;
}

mf.init();
alert(mf.getInnerHeight());

感谢所有为该主题做出贡献的人。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章