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();
假,即使两个值相等,请详细说明
.................................................. .................................................. .................................................. .........
答案 0 :(得分:1)
在JavaScript中,检查字符串和整数等原始值的相等性的方式与任何其他语言中的相同。但只有当这些对象的引用相同时,JavaScript对象才被认为是相同的。 (如果两者都指向同一个对象。)即使所有属性都是相同的,如果它们是两个不同的对象,它们也不会被认为是相等的。
您正在检查原型构造函数和使用构造函数创建的对象的相等性。尽管属性相同,但对这两个对象的引用并不相同。因此你会弄错。
答案 1 :(得分:0)
该代码中唯一未注释的=D5+SUMPRODUCT((D6:D9999<0)*(D6:D9999))
行在 console.log(this === penguin);
设置为通过{{1调用penguin
的结果之前执行}}。因此Answer
为new
,当然,新对象不是penguin
。
考虑这个更简单的示例,显示undefined
:
=== undefined
&#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);
:
new Animal
&#13;
答案 2 :(得分:-1)
http://adripofjavascript.com/blog/drips/object-equality-in-javascript.html解释了javascript中的对象是通过引用进行比较的。从这个意义上说,this
和penguin
可能等效,但它们不是相等。