虽然两个值相等但返回false

时间:2017-01-01 16:30:18

标签: javascript

UPDATE [ArticleTable] SET [OrderColumn]=[OrderColumn]-1 WHERE [OrderColumn]>=[ORDERVALUE_FROM_DELETED_ITEM]

............................................... .................................................. .................................................. ............ 为什么function Animal(name, numLegs) { //console.log(this) //{} this.name = name; this.numLegs = numLegs; // console.log(this) //{ name: 'Captain Cook', numLegs: 2 } //console.log(penguin) //{ name: 'Captain Cook', numLegs: 2 } //console.log(typeof(this)) //object //console.log(typeof(penguin)) //object //console.log(this===penguin)//flase console.log(this==penguin);//flase } // create the sayName method for Animal Animal.prototype.sayName = function () { //console.log("Hi my name is"+ " " + this.name); //console.log(this) //{ name: 'Captain Cook', numLegs: 2 } //console.log(this===penguin) //true }; // provided code to test above constructor and method var penguin = new Animal("Captain Cook", 2); penguin.sayName(); 假,即使两个值相等,请详细说明 .................................................. .................................................. .................................................. .........

3 个答案:

答案 0 :(得分:1)

在JavaScript中,检查字符串和整数等原始值的相等性的方式与任何其他语言中的相同。但只有当这些对象的引用相同时,JavaScript对象才被认为是相同的。 (如果两者都指向同一个对象。)即使所有属性都是相同的,如果它们是两个不同的对象,它们也不会被认为是相等的。

您正在检查原型构造函数和使用构造函数创建的对象的相等性。尽管属性相同,但对这两个对象的引用并不相同。因此你会弄错。

答案 1 :(得分:0)

该代码中唯一未注释的=D5+SUMPRODUCT((D6:D9999<0)*(D6:D9999)) 行在 console.log(this === penguin);设置为通过{{1调用penguin的结果之前执行}}。因此Answernew,当然,新对象不是penguin

考虑这个更简单的示例,显示undefined

的值

&#13;
&#13;
=== undefined
&#13;
&#13;
&#13;

而代码中后面注释掉的penguin行之一显示为true: function Animal() { console.log("first", typeof penguin); // undefined } var penguin = new Animal(); console.log("second", typeof penguin); // object表达式之后的已完成,结果已分配到console.log(this === penguin);

&#13;
&#13;
new Animal
&#13;
&#13;
&#13;

答案 2 :(得分:-1)

http://adripofjavascript.com/blog/drips/object-equality-in-javascript.html解释了javascript中的对象是通过引用进行比较的。从这个意义上说,thispenguin可能等效,但它们不是相等