簡體   English   中英

如何在Javascript中使用兩個空對象初始化數組

[英]How to initialize an array with two empty objects in Javascript

我正在制作一個角度控制器,需要用兩個空對象初始化一個數組,這樣屏幕上就會出現兩行,我需要在單擊+按鈕時初始化數組中的新對象。 我不確定如何去做這件事。

這是我最好的嘗試:

var myApp = angular.module('myApp', []);

myApp.controller('myController', ['$scope', '$q', function($scope, $q) {

    $scope.arr = [card('',''),card('','')];
    $scope.addLine = function(index){
        $scope.arr.push(card('',''));
    }
    $scope.removeLine = function(index){
        $scope.arr.splice(index, 1);
    }
}]);

function card(term, definition){
    this.term = term;
    this.definition = definition;
}

您需要使用關鍵字new來制作card實例:

$scope.arr = [new card('',''), new card('','')];
//            ^                ^ See new keyword  
$scope.addLine = function(index){
    $scope.arr.push(new card('',''));
    //              ^ See new keyword
}

此外,您應該考慮始終大寫您的構造函數(這樣您可以指示它的構造函數:

new Card('', '');
function Card(...) {...}

您還可以通過使用instanceof進行檢查來滿足new關鍵字的需求:

// No need for new anymore:
var card = Card(1, 2, 3); 
console.log(card instanceof Card); // true
function Card(a, b, c) {
  if (!(this instanceof Card)) return new Card(a, b, c);
  this.a = a;
  this.b = b;
  // ...
}
[new card('',''), new card('','')]

資源

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM