对象的方法

作者: 河许人 | 来源:发表于2016-11-16 23:34 被阅读411次
    方法.jpg
    从变量到数组再到对象,我们打了一系列的比喻,形象的说明了它们的含义。我们把变量比作吃饭的碗,数组是多功能饭盒,对象呢还是饭盒,但是不是简单的饭盒,特点是允许自定义它的行为。这个饭盒中支持方法(函数),具有属性,灵活应用,威力无穷,这样呢,她就更加神秘和抽象了,让我们一起来领略一下她的风采吧!

    首先了解一下什么是对象的方法,方法就是对象的函数(可以先简单这么理解)。每个方法都有一个名称为 this 的隐藏参数, 它实际上包含了指向继承自此类的对象的引用。不过, 它也可以包含指向此类自身或派生类的引用, 取决于如何调用这个方法。 方法被通过引用存储到类对象中。
    上边已经讲到对象的创建方法{}、[]、Object() 和 Array() 和释放方法,想必大家也都了解了!
    此外,对象还支持以下的方法:

    • InsertAt / RemoveAt
    • Push / Pop
    • Delete
    • MinIndex / MaxIndex / Length
    • SetCapacity / GetCapacity
    • GetAddress
    • _NewEnum
    • HasKey
    • Clone
    • ObjRawSet (函数)

    弃用的 (不推荐使用):

    • Insert
    • Remove

    每个方法都有对应的 obj前缀函数, 这样可以区别于自定义行为创建的对象
    这些 obj前缀函数是被推荐专门用于此目的的函数。
    要调用这种函数, 函数名称的前缀为 "Obj" 然后传递目标对象作为第一个参数。例如:

    array := [1, 2, 3]
    
    MsgBox % ObjMaxIndex(array) " = " array.MaxIndex()
    

    如果 "obj" 前缀函数 的参数对象或值的类型不正确,它将返回空字符串。
    下边我们就拿InsertAt 作为例子详细讲解一下,其他的方法请自行查阅帮助哈!
    InsertAt 插入一个或多个值到线性数组中的给定序号位置中。

    Object.InsertAt(Pos, Value1 [, Value2, 。。。 ValueN])
    

    Pos
    要将 Value1 插入到数组中的序号数字。 随后的值将插入到 Pos+1, Pos+2, 等等。

    Value1 。。。
    要插入数组的一个或多个值。 要将另一个数组中的值一次性插入, 传递 theArray* 作为最后一个参数。

    备注
    InsertAt 对应的是 RemoveAt
    作为关联数组对象, Pos 的整数值同时也成为 Value1在数组对象中的键名。 位于 Pos 之前或之后的键值对都会被自动改为正确的对应关系数值,哪怕键对应的值不存在也是如此 (因为对象是稀疏数组)。 例如:

    x := [] 
    
    x.InsertAt(1, "A", "B") ; => ["A", "B"] 
    
    x.InsertAt(2, "C") ; => ["A", "C", "B"]
    
    ; 稀疏(不连续)/未赋值 元素也被保留: 
    
    x := ["A", , "C"]
    
    x.InsertAt(2, "B") ; => ["A", "B", , "C"] 
    
    x := ["C"] 
    
    x.InsertAt(1, , "B") ; => [ , "B", "C"]
    
    

    InsertAt 最好仅用于处理对象中的整数键表示线性数组中位置的情况。如果对象中包含不连续的任意值整数键,比如 ID (不连续的序号) 或 handles (句柄), InsertAt 会产生出乎意料的效果。 例如:

    x := [], handleX := 0x4321, handleY := 0x1234 
    
    x.InsertAt(handleX, "A") 
    
    MsgBox % x[handleX] ; A - 正确 
    
    x.InsertAt(handleY, "B") 
    
    MsgBox % x[handleX] ; 返回空值 
    
    MsgBox % x[handleX+1] ; 这才是 "B" 的正确 "位置"
    

    InsertAt 不会影响文本或对象键, 所以可以安全的用于混合键类型的对象。

    好了今天的文章就到这里,一定要掌握对象的方法,才能了解她,这是她的小脾气。

    相关文章

      网友评论

        本文标题:对象的方法

        本文链接:https://www.haomeiwen.com/subject/tvxdpttx.html