我想知道为什么使用'=='
无法比较等分并显示为相等e.g
var p1:Point = new Point( 1, 5 );
var p2:Point = new Point( 1, 5 );
trace( p1 == p2 ) //false
trace( p1.x == p2.x, p1.y == p2.y ) //true true
trace( p1.equals( p2 )) //true
看起来很奇怪,有点无意义(双关语) 有人可以解释为什么会这样吗?
答案 0 :(得分:7)
p1 == p2
比较两个对象,而不是对象的x和y分量。由于p1和p2是不同的对象(由新Point创建)p1 == p2
返回false。
.equals()
方法对x和y组件进行比较,使其返回true。
以下内容将返回true:
var p1:Point = new Point(1,5);
var p2:Point = p1;
trace(p1==p2);
因为p1和p2实际上是同一个对象。