求救!为什么一个Javascript类声明了3个的对象,分别赋予不同的值,结果却是相同的?

softjedia 2004-07-29 04:44:03
大家帮忙看看下面的代码有什么问题没有?

<html>
<head>
</head>
<script>
<!--
function myObj(){
var _name = "";

function myObj.prototype.setName(name){
_name = name;
}

function myObj.prototype.getName(){
return _name;
}
}

var obj1 = new myObj();
var obj2 = new myObj();
var obj3 = new myObj();

obj1.setName('I am Obj1');
obj2.setName('I am Obj2');
obj3.setName('I am Obj3');

function do1()
{
txt1.value = obj1.getName();
}

function do2()
{
txt2.value = obj2.getName();
}
function do3()
{
txt3.value = obj3.getName();
}
-->
</script>
<body>
<input type="text" name="txt1" value="">
<input type="text" name="txt2" value="">
<input type="text" name="txt3" value="">
<script>
do1();
do2();
do3();
</script>
</body>
</html>
...全文
74 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
softjedia 2004-07-29
  • 打赏
  • 举报
回复
呵呵,明白了!
感谢: LxcJie(肖冲),感谢wanghr100(灰豆宝宝.net),同时很感谢 smallyear(颠狂柳絮) 。
wanghr100 2004-07-29
  • 打赏
  • 举报
回复
你的这种方法.所有的操作都作用在一个变量_name上.

function myObj(){
var _name = "";

function myObj.prototype.setName(name){
_name = name;
}

function myObj.prototype.getName(){
return _name;
}
}

->

function myObj(){
this._name = "";

function myObj.prototype.setName(name){
this._name = name;
}

function myObj.prototype.getName(){
return this._name;
}
}
LxcJie 2004-07-29
  • 打赏
  • 举报
回复
创建对象方法错误,用的是同意个属性,要设置为对象属性,如下:

<html>
<head>
</head>
<script>
<!--
function myObj()
{
this._name = "";
}
function myObj.prototype.setName(name)
{
this._name = name;
}

function myObj.prototype.getName(){
return this._name;
}

var obj1 = new myObj();
var obj2 = new myObj();
var obj3 = new myObj();

obj1.setName('I am Obj1');
obj2.setName('I am Obj2');
obj3.setName('I am Obj3');

function do1()
{
txt1.value = obj1.getName();
}

function do2()
{
txt2.value = obj2.getName();
}
function do3()
{
txt3.value = obj3.getName();
}
-->
</script>
<body>
<input type="text" name="txt1" value="">
<input type="text" name="txt2" value="">
<input type="text" name="txt3" value="">
<script>
do1();
do2();
do3();
</script>
</body>
</html>
smallyear 2004-07-29
  • 打赏
  • 举报
回复
<script>
<!--
function myObj(){
var _name = "";

function myObj.prototype.setName(name){
_name = name;
}

function myObj.prototype.getName(){
return _name;
}
}

var obj1 = new myObj();
var obj2 = new myObj();
var obj3 = new myObj();





function do1()
{
obj1.setName('I am Obj1');
txt1.value = obj1.getName();
}

function do2()
{obj2.setName('I am Obj2');
txt2.value = obj2.getName();
}
function do3()
{obj3.setName('I am Obj3');
txt3.value = obj3.getName();
}
-->
</script>

87,910

社区成员

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

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