IIS 7 статическая проблема сжатия файла

короткий ответ

простой ответ: Нет, нет никакого универсального средства решить, что объект равен другому в смысле, который Вы имеете в виду. Исключение - при строгом размышлении об объекте, являющемся без типов.

длинный ответ

понятие является понятием, Равняется методу, который сравнивает два различных экземпляра объекта указать, равны ли они на уровне значения. Однако это до определенного типа, чтобы определить, как Equals метод должен быть реализован. Повторяющееся сравнение атрибутов, которые имеют примитивные значения, не может быть достаточно, могут быть атрибуты, которые нельзя считать частью объектного значения. Например,

 function MyClass(a, b)
 {
     var c;
     this.getCLazy = function() {
         if (c === undefined) c = a * b // imagine * is really expensive
         return c;
     }
  }

В этом выше случая, c не действительно важно, чтобы определить, равны ли какие-либо два экземпляра MyClass, [только 113] и b важны. В некоторых случаях c мог бы варьироваться между экземплярами и все же не быть значительным во время сравнения.

Примечание эта проблема применяется, когда участники могут самостоятельно также быть экземплярами типа, и они каждый был бы все обязан иметь средство определения равенства.

Дальнейшие усложняющие вещи состоят в том, что в JavaScript различие между данными и методом размывается.

объект может сослаться на метод, который нужно назвать как обработчик событий, и это, вероятно, не считали бы частью его 'состояния значения'. Принимая во внимание, что другому объекту можно присвоить функция, которая выполняет важное вычисление и таким образом делает этот экземпляр отличающимся от других просто, потому что это ссылается на различную функцию.

Что относительно объекта, который имеет один из его существующих методов прототипа, переопределенных другой функцией? Это можно было все еще считать равным другому экземпляру что это в других отношениях идентичный? На тот вопрос можно только ответить в каждом конкретном случае для каждого типа.

, Как указано ранее, исключением был бы объект строго без типов. В этом случае единственным разумным выбором является повторяющееся и рекурсивное сравнение каждого участника. Даже тогда нужно спросить, каково 'значение' функции?

8
задан Grant Wagner 25 June 2009 в 21:15
поделиться