JavaScript构造类的问题

cart55free99 2009-11-02 03:47:29
<html>

<head>

<title></title>

</head>

<body>
<script language="javascript" type="text/javascript">


/*用类实现这样的作用
function CurrentAnswer(num)
{
var current=num;
return "the currrnt answer is :"+current;
}
alert(CurrentAnswer(5));


*/
function CurrentAnswer(num)
{
var current=num;
var newObject={
getCurrent:function ()
{
return "the currrnt answer is :"+current;
}

}
return newObject;//为什么一定有这句话呢?
}

var curr=new CurrentAnswer(5);
alert(curr.getCurrent());

</script>
</body>

</html>
...全文
92 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cart55free99 2009-11-05
  • 打赏
  • 举报
回复
3Q!
BeenZ 2009-11-03
  • 打赏
  • 举报
回复
是的,其实任何语言都可以 ,这里相当于声明了(如果是在强类型语言里的话)


public newObject CurrentAnswer(){
// doStg..

return newObject ;
}
强类型语言里这个叫做内部类
cart55free99 2009-11-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 beenz 的回复:]
你的getCurrent 是 newObject的属性方法
如果你不return 一个 newObject 对象,new CurrentAnswer 得到的将是CurrentAnswer 对象,不能调用newObject 的属性方法
[/Quote]

照你那么说,又有了一个新疑问,CurrentAnswer还可以返回别的对象?你的意思是可以在CurrentAnswer对象中return 一个 newObject 对象?
草根醉秋意 2009-11-02
  • 打赏
  • 举报
回复
楼主定义的current是方法内部的一个局部变量,方法返回后是无法访问的。
BeenZ 2009-11-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 yangxin114 的回复:]
由楼主的问题想到的:
我这里想访问current怎么办?

[/Quote]

newObject 是在 CurrentAnswer里定义的,所以他的作用范围是 CurrentAnswer.
所以在外面是访问不到的,相当于private的

想要访问有两个方法

1


/*用类实现这样的作用
function CurrentAnswer(num)
{
var current=num;
return "the currrnt answer is :"+current;
}
alert(CurrentAnswer(5));
*/
function CurrentAnswer(num)
{
var current=num;
this.newObject={
getCurrent:function ()
{
return "the currrnt answer is :"+current;
}

}
// return newObject;//为什么一定有这句话呢?
}
var curr=new CurrentAnswer(5);
var s=curr.newObject;
alert(s.getCurrent());



2.


/*用类实现这样的作用
function CurrentAnswer(num)
{
var current=num;
return "the currrnt answer is :"+current;
}
alert(CurrentAnswer(5));
*/
function CurrentAnswer(num)
{
var current=num;
var newObject={
getCurrent:function ()
{
return "the currrnt answer is :"+current;
}

}
this.getNewObj=function(){
return newObject;
}
// return newObject;//为什么一定有这句话呢?
}
var curr=new CurrentAnswer(5);
var s=curr.getNewObj();
alert(s.getCurrent());



.
Lewis83 2009-11-02
  • 打赏
  • 举报
回复
字体颜色无效...
Lewis83 2009-11-02
  • 打赏
  • 举报
回复
由楼主的问题想到的:
我这里想访问current怎么办?

function CurrentAnswer(num){
this.current = num;
this.newObject = {
getCurrent: function(){
return "the currrnt answer is :" + current;
}

}
}

var curr = new CurrentAnswer(5);
alert(curr.newObject.getCurrent());
BeenZ 2009-11-02
  • 打赏
  • 举报
回复
你的getCurrent 是 newObject的属性方法
如果你不return 一个 newObject 对象,new CurrentAnswer 得到的将是CurrentAnswer 对象,不能调用newObject 的属性方法

87,994

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧