Как включить/импортировать can.Object из canjs, чтобы can.Object.same был доступен для использования?

Я не могу заставить работать следующий пример на веб-сайте canjs: http://canjs.com/docs/can.Object.same.html#section_Examples

Следующая страница, загруженная в браузер, получит сообщение об ошибке: «Uncaught TypeError: Невозможно прочитать свойство «такое же» из неопределенного».

<!DOCTYPE>
<html>
<head>
<title></title>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.js"></script>
    <script src="http://canjs.com/release/latest/can.jquery.js"></script>
</head>
<body>
<script>

    can.Object.same({ name: "Justin" }, { name: "JUSTIN" }) //-> false
    // ignore the name property
    can.Object.same({ name: "Brian" }, { name: "JUSTIN" }, { name: null }) //-> true
    // ignore case
    can.Object.same({ name: "Justin" }, { name: "JUSTIN" }, { name: "i" }) //-> true
    // deep rule
    can.Object.same({ person: { name: "Justin"} },
    { person: { name: "JUSTIN"} },
    { person: { name: "i"} }) //-> true
    // supplied compare function
    can.Object.same({ age: "Thirty" },
    { age: 30 },
    { age: function (a, b) {
        if (a == "Thirty") {
            a = 30
        }
        if (b == "Thirty") {
            b = 30
        }
        return a === b;
    } 
    })      //-> true
</script>
</body>
</html>

И я также пытался использовать requirejs для использования canjs:

var can = requirejs("can");

Но это то же самое, can.Object по-прежнему «не определен». Я хочу использовать can.Object.same, чтобы проверить, равны ли два объекта на уровне значений. Я не использовал символы подчеркивания, иначе я могу использовать _.isEqual.

==== В дополнение к ответу Себастьяна, если вы используете requirejs, добавьте «can/util/object» в список в require([...]).====


person Rob L    schedule 20.06.2014    source источник


Ответы (1)


Вам нужно загрузить can.Object как дополнительный скрипт:

http://canjs.com/release/latest/can.object.js

Его нужно загрузить после Can.

person Sebastian    schedule 20.06.2014