push的意思:javascript中的函数

时间:2015-09-19 15:05:52

标签: javascript

return {push:function .....在下面的代码片段中是什么意思。当我用Google搜索时,我发现push()方法将新项添加到数组的末尾,并返回新的长度。所以我不确定是什么推动:它似乎是某种语法。有人可以解释一下。

function(notificationsArchive) {
  var MAX_LEN = 10;
  var notifications = [];
  return {
    push: function(notification) {
        var notificationToArchive;
        var newLen = notifications.unshift(notification);
        //push method can rely on the closure scope now!
        if (newLen > MAX_LEN) {
          notificationToArchive = this.notifications.pop();
          notificationsArchive.archive(notificationToArchive);
        }
      },
      // other methods of the NotificationsService
  };

2 个答案:

答案 0 :(得分:1)

推送引用的方法与使用数组推送无关,它是由模块模式公开的 public 方法。它只公开代码作者希望您能够调用/设置的方法和属性。它隐藏变量MAX_LEN和通知,因此无法从外部更改它们。

OO模块模式的参考:

答案 1 :(得分:0)

function(notificationsArchive) {
  var MAX_LEN = 10;
  var notifications = [];
  return {
    push: function(notification) {
        var notificationToArchive;
        var newLen = notifications.unshift(notification);
        //push method can rely on the closure scope now!
        if (newLen > MAX_LEN) {
          notificationToArchive = this.notifications.pop();
          notificationsArchive.archive(notificationToArchive);
        }
      },
      // other methods of the NotificationsService
  };