Fork me on GitHub

AS3的原型:prototype

原创文章,未经允许,请勿转载

写过JS的都清楚原型:prototype,AS3也有这个机制,不多说,直接上代码:

//给数组原型增加一个获取随机数组元素的方法:randomItem 
Array.prototype.getRandomItem = function(): * 
{ 
    return this[Math.floor(Math.random() * this.length)]; 
}; 

//这里设置这个方法不可被(for...in、foreach...in)枚举,非常重要! 
Array.prototype.setPropertyIsEnumerable('getRandomItem', false); 

var arr:Array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; 
trace(arr.getRandomItem());

虽然看起来原型也牛逼,可以直接在运行时赋予某个对象一个功能函数,但是也因为如此我们在写代码的时候并不一定知道这个对象有个方法,由此给代码结构带来混乱,所以一般还是不要去扩展原型。

当然总有原型的用武之地,之前看到有人利用原型机制对as代码进行加密解密来保护代码安全。

来源:悠游悠游,原文地址:https://yymmss.com/p/as3-prototype.html