Pot.js で利用可能。 PotLite.js では利用できません。
2 つのオブジェクトが同じ値を持つか比較します。
引数 object と 引数 subject が同じ値を持つか比較し、
同じ場合は 真 (true) が返り、違う場合は 偽 (false) が返ります。
比較は単純な === だけではなく、値を比較します。
任意に引数 func によって、比較する関数が指定できます。
Pot.globalize() が適応されている場合、Pot.equals() が equals() で実行できます。
object と subject が同じ値を持つ場合 true が返り、違う場合 false が返ります。
var obj1 = {foo: 10, bar: 20, baz: 30};
var obj2 = {foo: 10, bar: 20, baz: 30};
var obj3 = {a: 'hoge', b: 'fuga'};
Pot.debug(Pot.equals(obj1, obj2)); // true
Pot.debug(Pot.equals(obj1, obj3)); // false
var obj4 = {};
var obj5 = {};
Pot.debug(Pot.equals(obj4, obj5)); // true
var arr1 = [1, 2, 3];
var arr2 = [1, 2, 3];
var arr3 = [1, 2, 10];
Pot.debug(Pot.equals(arr1, arr2)); // true
Pot.debug(Pot.equals(arr1, arr3)); // false
var arr4 = [];
var arr5 = [];
Pot.debug(Pot.equals(arr4, arr5)); // true
var cmp = function(a, b) {
return a == b ||
String(a).toLowerCase() == String(b).toLowerCase();
};
var arr6 = [1, 2, 'foo', 'bar'];
var arr7 = ['1', 2, 'FOO', 'baR'];
Pot.debug(Pot.equals(arr6, arr7, cmp)); // true
var func1 = (function() {});
var func2 = (function() {});
var func3 = (function() { return this; });
Pot.debug(Pot.equals(func1, func2)); // true
Pot.debug(Pot.equals(func1, func3)); // false
var date1 = new Date(); var date2 = new Date(date1.getTime()); var date3 = new Date(date1.getTime() + 100); Pot.debug(Pot.equals(date1, date2)); // true Pot.debug(Pot.equals(date1, date3)); // false
var str1 = 'foobarbaz'; var str2 = 'foobarbaz'; var str3 = 'hoge'; Pot.debug(Pot.equals(str1, str2)); // true Pot.debug(Pot.equals(str1, str3)); // false
var num1 = 12345; var num2 = 12345; var num3 = 12345.455512; var num4 = 12345.443556; var num5 = 12345.443556999; Pot.debug(Pot.equals(num1, num2)); // true Pot.debug(Pot.equals(num1, num3)); // false Pot.debug(Pot.equals(num3, num4)); // false Pot.debug(Pot.equals(num4, num5)); // true