часть более крупной программы с помощью AngularJs, фрагмент кода:х = {} создает спонтанных объект
var thePortList = $scope.ipPortList; // an array of objects
...
...
console.log("before", $scope.ipPortList, thePortList);
thePortList[i] = {};
console.log("after", $scope.ipPortList, thePortList);
Создает этот вывод:
before [] []
after [2: Object] [2: Object]
Я понятия не имею, почему. Я мог ожидать увидеть что-то подобное в многопоточной программе, но не в Javascript.
x = {} должен назначать новый пустой объект этому элементу массива. Правильно? Я смущен этим поведением. Может ли кто-нибудь пролить свет?
Протестировано в Chrome как на моей локальной машине, так и на plunkr.
Plunkr здесь:
Полный выход plunkr консоль: Plunker Link
Event tracked Multipane Show Preview Toolbar undefined undefined
editor-0.11.1.js:2 URL visited /?p=preview
VM631:29 portList []
VM631:34 processing 0 [] undefined
VM631:39 skipping 0
VM631:34 processing 1 [] undefined
VM631:39 skipping 1
VM631:34 processing 2 [] undefined
VM631:45 before [] []
VM631:47 after [2: Object] [2: Object]
Каков ваш ожидаемый результат? Является ли проблема, что объект появляется в * обоих * '$ scope.ipPortList' и' thePortList'? Потому что это правильное поведение, учитывая, что оба относятся к одному и тому же массиву. – nnnnnn
Можете ли вы рассказать нам, каково ваше ожидаемое поведение –