this.id = id; };var test1 = new Test(1); var test2 = new Test(1); var test3 = new Test(2);var test1_1 = new Test2(1); var test1_2 = new Test2(1);/* 判断的适合可以使用这样的方法 */ /* 输出ture */ alert('test1.equal(test2); ' + test1.equal(test2));/* 输出false */ alert('test1.equal(test3); ' + test1.equal(test3));/* 输出false */ alert('test1.equal(test1_1); ' + test1.equal(test1_1));/* 输出ture */ alert('test1_1.equal(test1_2); ' + test1_1.equal(test1_2)); </script>
转个弯不就行了吗? 给两个对象 分别附加上自己的特征属性 然后判断他们的特征属性 是否相等 如 var a = new Object)( a.isA="a"; var b = new Object)( b.isB="b"; 这样应该可以判断了吧 不晓得你要做什么用....
To My97(My97): 谢谢!明白了,js中没有现成的方法,只能自己写。 To chaonan(R.Honker): 你说得对,不过俺想多知道点
To btbtd(點點點...) :刚刚看到的消息: 台湾地震导致14条海底光缆中断,大陆通往台湾地区、北美、欧洲、东南亚等方向的互联网大面积瘫痪。 可见我们遇到的麻烦不是西方人生蛋造成的。
前几天也遇到了同样的问题,用了和楼上同样的办法function JMyObj(){ this._ClassName="JMyObj"; }JMyObj.prototype.getClassName=function(){ result this._ClassName; }
引用: chaonan(R.Honker) : 转个弯不就行了吗? 给两个对象 分别附加上自己的特征属性 然后判断他们的特征属性 是否相等 如 var a = new Object)( a.isA="a"; var b = new Object)( b.isB="b"; 这样应该可以判断了吧 不晓得你要做什么用....你的想法是错误的,楼主要判断是是参数和类,你的方法只能判断他们是同一个类,没有对参数进行判断 例如: var test1 = new Test(1); var test2 = new Test(1); var test3 = new Test(2);用你的方法的结果是: test1 == test2 == test3 用我的方法的结果是: test1 == test2 test1 != test3 test2 != test3 明白我的意思了么?
My97(My97)的方法是我需要的,这种方法符合面向对象的设计规范。
to My97() 你说的对 我那样是不来判断 但是你在改一下 不就可以了吗 <SCRIPT LANGUAGE="JavaScript"> <!-- function Test(t) { this.which= "test_"+t; } var test1 = new Test(1); var test2 = new Test(1); var test3 = new Test(2); alert(test1.which.split('_')[1] == test2.which.split('_')[1]) alert(test1.which.split('_')[1] == test3.which.split('_')[1]) alert(test3.which.split('_')[1] == test2.which.split('_')[1]) //--> </SCRIPT> program is death person is live
to chaonan(R.Honker) 你说的对 我那样是不来判断 但是你在改一下 不就可以了吗你的方法只适用1个参数这一种情况,万一有2个,3个或者更多的参数呢?这样你的函数就不可用了
this.id = id;
} test1 = new Test(1);
test2 = new Test(1);我希望有一个方法能够比较test1和test2,并得出“相等”的结论。
写的很辛苦的 <script>
function Test(id){
/* 加两个属性和一个方法 */
this.__args = arguments;
this.__funType = 'Test';
this.equal = function(obj){
if(this.__args.length!=obj.__args.length) return false;
if(this.__funType!=obj.__funType) return false;
for(var i=0; i<this.__args.length; i++){
if(this.__args[i] != obj.__args[i]){
return false;
}
}
return true;
};
this.id = id;
};function Test2(id){
/* 加两个属性和一个方法 */
this.__args = arguments;
this.__funType = 'Test2';
this.equal = function(obj){
if(this.__args.length!=obj.__args.length) return false;
if(this.__funType!=obj.__funType) return false;
for(var i=0; i<this.__args.length; i++){
if(this.__args[i] != obj.__args[i]){
return false;
}
}
return true;
};
this.id = id;
};var test1 = new Test(1);
var test2 = new Test(1);
var test3 = new Test(2);var test1_1 = new Test2(1);
var test1_2 = new Test2(1);/* 判断的适合可以使用这样的方法 */
/* 输出ture */
alert('test1.equal(test2); ' + test1.equal(test2));/* 输出false */
alert('test1.equal(test3); ' + test1.equal(test3));/* 输出false */
alert('test1.equal(test1_1); ' + test1.equal(test1_1));/* 输出ture */
alert('test1_1.equal(test1_2); ' + test1_1.equal(test1_2));
</script>
给两个对象 分别附加上自己的特征属性 然后判断他们的特征属性 是否相等
如
var a = new Object)(
a.isA="a";
var b = new Object)(
b.isB="b";
这样应该可以判断了吧
不晓得你要做什么用....
谢谢!明白了,js中没有现成的方法,只能自己写。
To chaonan(R.Honker):
你说得对,不过俺想多知道点
台湾地震导致14条海底光缆中断,大陆通往台湾地区、北美、欧洲、东南亚等方向的互联网大面积瘫痪。 可见我们遇到的麻烦不是西方人生蛋造成的。
this._ClassName="JMyObj";
}JMyObj.prototype.getClassName=function(){
result this._ClassName;
}
chaonan(R.Honker) :
转个弯不就行了吗?
给两个对象 分别附加上自己的特征属性 然后判断他们的特征属性 是否相等
如
var a = new Object)(
a.isA="a";
var b = new Object)(
b.isB="b";
这样应该可以判断了吧
不晓得你要做什么用....你的想法是错误的,楼主要判断是是参数和类,你的方法只能判断他们是同一个类,没有对参数进行判断
例如:
var test1 = new Test(1);
var test2 = new Test(1);
var test3 = new Test(2);用你的方法的结果是: test1 == test2 == test3
用我的方法的结果是: test1 == test2 test1 != test3 test2 != test3 明白我的意思了么?
你说的对 我那样是不来判断
但是你在改一下 不就可以了吗
<SCRIPT LANGUAGE="JavaScript">
<!--
function Test(t)
{
this.which= "test_"+t;
}
var test1 = new Test(1);
var test2 = new Test(1);
var test3 = new Test(2);
alert(test1.which.split('_')[1] == test2.which.split('_')[1])
alert(test1.which.split('_')[1] == test3.which.split('_')[1])
alert(test3.which.split('_')[1] == test2.which.split('_')[1])
//-->
</SCRIPT>
program is death person is live
你说的对 我那样是不来判断
但是你在改一下 不就可以了吗你的方法只适用1个参数这一种情况,万一有2个,3个或者更多的参数呢?这样你的函数就不可用了