javascript - 如何访问构造函数中的构造函数成员?

标签 javascript angularjs

抱歉,我不知道如何表达这个问题。我知道这是某种范围问题。但是我想要完成的任务是不可能的吗?

app.factory('SystemStatusConnectionFactory', ['$timeout', '$q', 'SystemStatusFactory', 'SystemStatusOptionsFactory',
function ($timeout, $q, SystemStatusFactory, SystemStatusOptionsFactory) {

    var self = this;

    var SystemStatusConnectionFactory = function (ip, user, pw, options) {
        this.data = {
            count: 0
        };

    this.PollIP = function () {
      console.log(this.data.count);  //WORKS
      $timeout(function () {
            console.log(self.data.count);  //DOES NOT WORK
            console.log(this.data.count);  //DOES NOT WORK
        }, 1000);
    }
   };
... etc

最佳答案

不确定您是否已经从评论中解决了这个问题(因为我不明白为什么这首先不起作用),但是您是否尝试过使用 bind() 函数那个超时的函数参数?这将消除使用 var self = this

的需要
// ...
this.PollIP = function () {
      console.log(this.data.count);
      $timeout(function () {
            console.log(self.data.count);
            console.log(this.data.count);
        }.bind(this), 1000); // modified line
    }
// ...

关于javascript - 如何访问构造函数中的构造函数成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37979865/

相关文章:

javascript - 为什么 "this"关键字引用传递的参数?

javascript - 以phonegap + Angular JS + onsen为中心

AngularJS 使用 ng-if 与 ng-show

mysql - restangular如何与MySQL数据库对话

javascript - filepicker.io Javascript API 调用导致不安全的 javascript 错误

javascript - 是的,React Hook Form : How to validate onChange rather than onSubmit

javascript - 动态构建表时事件在 JQuery 中不起作用

javascript - 无法在angularjs中使用ngstyle动态创建边框

javascript - 为什么 "onmouseover"事件使用 "return true"来防止默认行为?

javascript - 覆盖 jquery.param 函数