直接用=号就可以。if( objectA == objectB ) 判断是否同一对象。---------说错了莫怪,今天老是断线

解决方案 »

  1.   

    不是相同,而是相等。比如:    function Test (id){
            this.id = id;
        }    test1 = new Test(1);
        test2 = new Test(1);我希望有一个方法能够比较test1和test2,并得出“相等”的结论。
      

  2.   

    用代码来回答你的问题吧
    写的很辛苦的 <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>
      

  3.   

    转个弯不就行了吗?
    给两个对象 分别附加上自己的特征属性 然后判断他们的特征属性 是否相等

    var a = new Object)(
    a.isA="a";
    var b = new Object)(
    b.isB="b";
    这样应该可以判断了吧 
    不晓得你要做什么用....
      

  4.   

    To My97(My97):
        谢谢!明白了,js中没有现成的方法,只能自己写。
    To chaonan(R.Honker):
        你说得对,不过俺想多知道点
      

  5.   

    To btbtd(點點點...) :刚刚看到的消息:
        台湾地震导致14条海底光缆中断,大陆通往台湾地区、北美、欧洲、东南亚等方向的互联网大面积瘫痪。    可见我们遇到的麻烦不是西方人生蛋造成的。
      

  6.   

    前几天也遇到了同样的问题,用了和楼上同样的办法function JMyObj(){
     this._ClassName="JMyObj";
    }JMyObj.prototype.getClassName=function(){
      result this._ClassName;
    }
      

  7.   

    引用:
    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 明白我的意思了么?
      

  8.   

    My97(My97)的方法是我需要的,这种方法符合面向对象的设计规范。
      

  9.   

    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
      

  10.   

    to chaonan(R.Honker) 
    你说的对 我那样是不来判断
    但是你在改一下 不就可以了吗你的方法只适用1个参数这一种情况,万一有2个,3个或者更多的参数呢?这样你的函数就不可用了