Nat*_*ide 1 flash comparison point actionscript-3
我想知道为什么无法比较相等的点并使用'=='显示为相等
例如
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
Run Code Online (Sandbox Code Playgroud)
这看起来很奇怪而且有点无意义(双关语)
任何人都能解释为什么会这样吗?
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);
Run Code Online (Sandbox Code Playgroud)
因为p1和p2实际上是同一个对象.