Hier ist mein Code:
<div ng-controller="TestController">
<h1 ng-click="click()">{{person.name}}</h1>
</div>
<script type="text/javascript">
var app = angular.module('app', []);
app.controller('TestController', function ($scope) {
var p = $scope.person = {
name: 'Br'
};
$scope.click = function() {
p = {};
}
});
</script>
Wenn ich auf die <h1>
, ich setzen Sie das p
Objekt, so erwarte ich leer in der h1
-Tag.
Da ich denke, die Variable hat die gleiche Referenz wie $scope.person
, die auf das gleiche Objekt zeigen.
In der Tat hat sich nichts geändert, als ich klickte, nur wenn ich die $scope.person = {}
zurücksetzen.
Warum funktioniert es nicht so, wie ich es erwarte? Was ist falsch in meinem Denken?
p nur ein Zeiger ist. Physisch p = {} erzeugt das Objekt {} irgendwo im Speicher und fügt die 'p'-Objektadresse ein. –