什么是hasOwnProperty并在angularjs中推送?

时间:2016-03-26 05:44:59

标签: javascript angularjs

几周前,我买了一本关于使用angularjs聊天应用程序的教程书。实际上,本书提供了有关angularjs和其他一些信息的信息,但是聊天应用程序本身没有解释,作者只是给出了所有代码来构建它而没有解释。所以,我只是复制并粘贴代码,但我不明白那里的一些代码。喜欢这个发送消息的功能:

 $scope.messageshistory = {};
    $scope.tmp = {};

    // send message
    $scope.sendMessage = function(){
        $scope.messages = {
            from      : $scope.datauser['data']['_id'],
            fromname  : $scope.datauser['data']['nama'],
            to        : $scope.tmpuserid,
            message   : $scope.tmp['sendmessage'],
            time      : moment()
        };
          //event emit message
        socket.emit('message',$scope.messages,function(callback){       
          if(!callback['error']){
          $scope.messages['time'] = moment($scope.messages['time']).format('DD-MMMM-YYYY hh:mm');

           if ($scope.messageshistory.hasOwnProperty($scope.tmpuserid)){ $scope.messageshistory[$scope.tmpuserid].push($scope.messages);
                }else{
                    $scope.messageshistory[$scope.tmpuserid] =   [];
                    $scope.messageshistory[$scope.tmpuserid].push($scope.messages);
                }
                $scope.tmp['sendmessage'] = '';
          }else{
               var msg = callback['error'];
                navigator.notification.alert(msg,'','Error Report', 'Ok');
            }

            $scope.$apply();
        });
    };

我的问题是$scope.messageshistory.hasOwnProperty($scope.tmpuserid)实际上是什么?什么是$scope.messageshistory[$scope.tmpuserid].push($scope.messages)在做什么?谢谢你的解释

1 个答案:

答案 0 :(得分:0)

$scope.messageshistory是用户ID的历史记录的关联数组。 $scope.messageshistory.hasOwnProperty($scope.tmpuserid)检查用户是否有带tempuserid的消息历史记录。如果他这样做,$scope.messageshistory[$scope.tmpuserid].push($scope.messages)将消息推送到表示当前用户和tempuserid之间的消息历史记录的数组。