zoukankan      html  css  js  c++  java
  • AS3中is和as操作符的区别

    (1)is操作符
    在AS3.0新增加的is运算符,主要功能是判断一个变量或者等式是不是等于给定的数据类型,在以前的版本中,有instanceof来实现相同的功能。
    但是is 运算符可以帮助我们确定数据类型,还可以判断类的继承关系,包括对于接口的继承执行。
    可以看如下实例:

    var mySprite:Sprite = new Sprite();
    trace(mySprite is Sprite); //output:true
    trace(mySprite is DisplayObject); //output:true
    trace(mySprite is IEventDispatcher); //output:true

    如果将is用instanceof来代替的,那么执行情况将如下:

    trace(mySprite instanceof Sprite); //output:true
    trace(mySprite instanceof DisplayObject); //output:true
    trace(mySprite instanceof IEventDispatcher); //output:false

    主要的区别在于对于接口的判断,在AS3.0中, Sprite继承自EventDispatcher类,而该类正好执行了IEventDispatcher接口。
    (2)as运算符

    AS3.0中新增加的运算符,也是用来判断一个给定的表达式是否符合所给定的数据类型,与is类似,但是不同之处在于返回值。as返回用表达式的结果代替了is返回的true,用null代替了is返回的false.
    例如:
    trace(mySprite as Sprite); //output: [object Sprite]
    trace(mySprite as DisplayObject); //output: [object Sprite]
    trace(mySprite as IEventDispatcher); //output: [object Sprite]
    trace(mySprite as Number); //output: null
    在AS3中,已经不赞成使用instanceof操作符用is取而代之了。
    注意:AS上的全局转换方法Class(object)的优先级依旧高于type(object)转换方法。这些方法包括String(),Number(),和Array()等。

  • 相关阅读:
    thinkphp中<eq>标签的使用
    Thinkphp中的eq比较标签
    select取数据库值设为默认值,TP框架模板中ifelse
    fastadmin 前端根据status自定义显示不同的内容
    CMS自定义表单无法切换“是否需要登录”开关
    js获取域名
    fastadmin 页面添加编辑日期时间
    bootstrap-table给单元格添加链接
    python相关资料
    区块链共识机制 —— PoW共识的Python实现
  • 原文地址:https://www.cnblogs.com/ztdy/p/3600949.html
Copyright © 2011-2022 走看看