所以假设你有一个非常基本的 person 对象,它有两个值和一个函数:
function personObject() {
this.name = 'First Name';
this.placeInLine = 1;
this.setPlaceInLine = function(place) {
this.placeInLine = place;
}
}
我们设置了一些这样的变量:
var john = new personObject();
var bill = new personObject();
var message = "";
现在看看下面的三个代码片段......
---代码#1---
if(john.placeInLine < bill.placeInLine) message = "John is before Bill";
else message = "John is not before Bill";
结果:消息=“约翰不在比尔之前”;// 因为 1 不小于 1
---代码#2---
bill.setPlaceInLine(2); // change Bill's place to 2 (instead of default of 1)
if(john.placeInLine < bill.placeInLine) message = "John is before Bill";
else message = "John is not before Bill";
结果:消息=“约翰在比尔之前”;// 因为 1 小于 2;
---代码#3---
if(john.placeInLine < bill.setPlaceInLine(2)) message = "John is before Bill";
else message = "John is not before Bill";
结果:消息=“约翰不在比尔之前”://为什么?
比较后是否调用了 .setPlaceInLine 函数?或者运行该函数的行为是否返回了与 john.placeInLine 进行比较的内容?