javascript - 如何使用内部对象函数 Javascript 访问外部对象属性

标签 javascript

我正在学习 Javascript 中的 this 关键字。我正在尝试一种使用内部对象函数访问外部对象属性的方法。例如:

var outer = {
    prop : 'prop',
    func : function(){
      return this.prop;
    },
    inner : {
      func : function(){
        return this.prop;
      }
    }
  }
  --> outer.func() : 'prop'
  --> outer.inner.func() : undefined

我明白为什么它不起作用,但我不知道如何访问外部对象的 prop

最佳答案

让函数属性的内部知道任何关于已分配给包含该属性的对象的变量名通常是一个非常糟糕的主意。它引入了不需要的依赖项,更重要的是阻止了此类对象的多个实例存在。

另一种构造是下面显示的“模块模式”,它使用一个闭包和一个允许任何嵌套属性访问该(本地)变量的变量。

var outer = (function() {
    var prop = 'prop';
    return {
        prop: prop,
        func: function() {
            return prop;
        },
        inner : {
            func : function() {
                return prop;
            }
        } 
    }
})();

关于javascript - 如何使用内部对象函数 Javascript 访问外部对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30695546/

相关文章:

javascript - 代码分割 React 组件

javascript - 对表单使用 Reset() 函数返回 "property of undefined"

javascript - 选择选项的格式错误 - JQuery

javascript - 如何从字符串中删除所有逗号并添加空格?

javascript - 是否可以在不提供空值数组的情况下在 billboard.js 时间序列图表上添加一个点?

javascript - 具有可变参数的 jQuery 动态函数

javascript - 选择一个类,它是零件名称和零件变量

javascript - Angular 6 每 5 秒运行一次代码,但它第一次发出

javascript - 为什么此函数无法与 getElementsByTagName 以外的其他 "get element"方法一起使用?

javascript - 当单击另一个元素时如何触发元素的单击功能?