angular.extend()

<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <title>angular.extend</title>
    </head>

    <body ng-app="extendExample">
        <h1>angular.extend</h1>
        <p>
            <span>描述:</span><br />
            <span>复制src对象中的属性去dst对象中. 支持多个src对象. 如果你不想改变一个对象,你可以把dst设为空对象{}: var object = angular.extend({}, object1, object2). 注意: angular.extend不支持递归复制.</span>
        </p>
        <p>
            <span>使用方法:</span><br />
            <span>angular.extend(dst, src)</span>
        </p>
        <p>
            <span>参数:</span><br />
            <span>dst:Object,目标对象</span><br />
            <span>scr:Object,被copy的对象</span>
        </p>
        <p>
            <span>返回值:</span><br />
            <span>对dst的引用</span>
        </p>
        <hr />
        <div ng-controller="extendcon">

        </div>
    </body>
    <script src="../../js/angular.1.3.0.js" type="text/javascript" charset="utf-8"></script>
    <script type="text/javascript">
        angular.module('extendExample', []).controller('extendcon', function($scope) {
            $scope.baby = {
                cry: function() {
                    console.log('小孩子会哭!!!');
                }
            };
            $scope.adult = {
                earn: function() {
                    console.log('成年人会赚钱!!!');
                },
                lover: {
                    love: function() {
                        console.log('成年人会有爱!!!');
                    }
                }
            };
            $scope.human = {};
            $scope.hehe = 'hehe';
            $scope.extend = function() {
                angular.extend($scope.human, $scope.baby, $scope.adult);
                $scope.human.cry();
                $scope.human.earn();
                //注意,这里修改了lover对象的love()方法,由于extends()方法不是深复制的,$scope.human和$scope.adult其实引用的是同一个对象
                $scope.human.lover.love = function() {
                    console.log("成年人会讨厌人");
                } 
                //这两行都会输出“成年人会讨厌人",可怜的adult对象,他把自己的lover分享给了human!
                $scope.human.lover.love();
                $scope.adult.lover.love();
            }
            $scope.extend();
        })
    </script>

</html>

猜你喜欢

转载自www.cnblogs.com/tanxiang6690/p/9766022.html
今日推荐