永发信息网

AS(2.0)的一个小问题!!高手进来看看~!

答案:1  悬赏:40  手机版
解决时间 2021-04-28 23:15

function Book() {
this.setQuantity = function(numBooks:Number):Void {
this.books = numBooks;
};
this.getQuantity = function():Number {
return this.books;
};
this.getTitle = function():String {
return "OK";
};
this.addProperty("bookcount", this.getQuantity, this.setQuantity);
this.addProperty("bookname", this.getTitle, null);
}
var myBook = new Book();
myBook.bookcount = 5;
trace(myBook.bookcount+"+"+myBook.bookname);

这是关于Object类addProperty方法的一个例子;

我的问题不是这个方法的使用,问题是

this.books 中的books是一个未定义的属性,为什么也可以正常使用。

小弟是半路出家,基础不是很好,请高手指教!

感谢!

最佳答案

问问上看到你的更新,就进来了.之类的知识包括你前两天问我的.都是些非专业人员应该很少用到的.
.books 在里面相当于一个局部变量,在类里通常变量称为属性,函数称为方法,变量不是随地都可以创建的吗?
再看下面的代码:是个类文件.
class Book {
var books:Number;
function set bookcount(numBooks:Number):Void {
this.books = numBooks;
}
function get bookcount():Number {
return this.books;
}
function get bookname():String {
return "OK";
}
}
与上面你的代码是等效的,帮助内容也介绍了 第二行 var books:Number; 这里是先申明了变量.整段代码就是存取器设置.有没先学习下类知识呢?



再谈下__resolve属性
使用 __resolve 将未定义的方法调用重定向到名为 myFunction 的一般函数
先理解这个__resolve属性怎么运行的, 原始帮助内容'对用户定义的函数的引用,该函数在 ActionScript 代码引用未定义的属性或方法时调用'
意思是要用此属性,就先定义一个函数.这个定义的函数是怎么运行的呢?是当你通过代码引用未定义的属性或者方法时就自动调用了.比如myObject.xs(); 就是个未定义的方法
当你使用这个 未定义的方法时,就自动运行此段代码myObject.__resolve = function (b) {
return function () { this.myFunction(b); };
};
而函数里面的return function () { this.myFunction(b); }; 就是调用重定向到名为 myFunction 的一般函数 当然你也可以定义其它东西. 应该能懂了

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
番禺哪里有psp卖店
网页加载不了是什么原因
手机下了个电影连接电视为啥看不起?
爱情受伤励志的句子,表达受伤的句子
现在QQ三国怎么样赚钱容易
为什么喝了来红酒好渴
华祥工程机械配件地址有知道的么?有点事想过
情人节送男朋友什么礼物?
运行360卫士时发生的异常,请各位大侠指教
求vm8.0中文破解版的下载地址,要完整版本的
张震岳和侯佩岑合唱的一首歌
如何设置电脑音频输出
我家装了IPTV。为什么连接宽带都要很长时间
带有爱字的诗词,诗名里带看云字的诗词有哪些
这是哪首歌
推荐资讯
怎样治理头削
遵义市安检局在什么位置
甄嬛传果郡王对余答应说皇上喜欢李白的诗是什
为什么人总是善变
云海的妈妈是怎样接受雨荨的
康家湾这个地址在什么地方,我要处理点事
我的球球好被举报了也可能是被盗用了,,反正
风扇嗡嗡作响
谁知道知道这一系列的恐怖图片叫什么名字吗?
重庆火车站有到万盛的火车吗?是好久的?价钱
源湖在什么地方啊,我要过去处理事情
求ps高手改车票日期
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?