有一个js文件(test.js)里面内容类似以下:
var obj = new Object();
obj.getValue = function( arg )

   alert( arg );
 }
我要在前台asp.net的页面的js代码中调用obj.getValue函数,应该如何调用

解决方案 »

  1.   

    先<script type="text/javascript" src="路径/test.js"></script><script type="text/javascript">
    直接
    obj.getValue();</script>
      

  2.   

    <input value="12" onclick="obj.getValue(this.value);">111</P><script language="javascript">
    var obj = new Object();
    obj.getValue = function(arg){ 
      alert( arg );
    }获取对象的属性  
      

  3.   


    提示obj不存在!!!
    不明白2楼的意思。
      

  4.   

    二楼的把js文件引进来后还是要先new 一下的吧,要不指定找不到对象啊。
      

  5.   


    5楼 :当然引用了这个js文件的。
    6楼:怎么new一下? 这样吗 var obj = new Object() ?
      

  6.   

    你用那个对象的方法就new哪个对象啊!
      

  7.   

    那好 我告诉你。代码本身是没有问题的
    至少你给的这2句代码可以直接调用obj.getValue("1");如果不介意的 话 还是直接把代码贴出来吧
      

  8.   

    试过,不行。var o = new obj(); o.getValue();  提示...obj未定义
      

  9.   

    本帖最后由 net_lover 于 2010-04-28 15:39:46 编辑
      

  10.   

    你能不能把你整个js文件贴出来,你的new obj()如果没有指定提示位定义啊
      

  11.   

    这个是我自己测试用的,代码很简单,js就是我上面贴出来的。前台用asp.net,js文件在head中用link引,路径都正确。我就想知道js是如何封装和调用的。
      

  12.   

    js文件在head中用link引,??
    应该使用script吧
      

  13.   

    封装的方式很多种 给你举个例子function Person(name,age) {
       this.name = name;
       this.age = age;
       this.getName = function()  {
          return this.age;
       }
    }那么你在调用的时候就可以
    var p = new Person("zhangsan",17);
    alert(p.name);
    alert(p.getName());如果你在这个函数外面还想添加方法 可以这样Person.prototype.getAge = function() {
       return this.age;
    }
      

  14.   


    我开始也在<script>中引用,但是不行后,我就用link试一试。
      

  15.   

    检查
    <script type="text/javascript" src="路径/test.js"></script>
    中的“ 路径/test.js ”是不是test.js的实际路径,alert(obj);
    可以测试test.js是否引用成功
      

  16.   

    你先不要把方法作为对象属性添加进去,你在js文件里就直接写那个方法。function getValue(){}
      

  17.   

    obj.getValue("ok")这样直接调用肯定是没问题的。提示obj不存在,可能是因为obj在test.js中定义时有语法错误,使对象没有成功加载,所以找不到。还有可能是调用时,还没有完成对象加载,也就是在引用test.js文件之前就被调用了。
      

  18.   

    经过测试路径是没有问题,test.js已在head中引用。
    test.js代码如下:
    var obj= new Object();
    obj.getValue=function()
    {
       alert("ok");
    }
    前台js定义如下: var o = new obj();o.getValue();前台执行后提示错误为,obj不支持此方法。
    但是如果test.js是如下定义的话则前台能执行成功:
    test.js:
       function test()
       {
          this.act = function()
          {
              alert("ok");
          }
       }
     前台调用 :
       var o = new test();
       o.act();
     则能执行成功!!!
      

  19.   

    cj205
    (阡陌之谜)
    是不是在对象外部"追加"的方法必须要使用 obj.prototype.function 这种方式,但是我看到有的代码也有我的那种写法: var obj = new Object();obj.func= function(){...}
      

  20.   

    因为方法也是对象,你引入js文件后new这个对象,再调它属性方法这样是指定没问题的。
      

  21.   

    这是二样东西var obj = new Object();
    这个时候obj已经是个对象了。如果你有类的概念应该知道的,虽然在JS里一切都是对象。但是我们从junior的角度去解释可以是这样的。
    那么我写的就可以var p = new Person();
    为什么呢,因为这就是一个封装的对象,他可以被“实例化”。所以说,这是2样不同的东西var obj = new Object();这个和var a = 5;是没有区别的
      

  22.   

    前提是你的js引用时成功的,你的代码是没有错误的,你使用firefox用firebug看一下
      

  23.   


    您的意思是不是:var obj = new object();在此处已经是一个对象了,而 function person(){...} 还只是一个类.所以在前台可以new 一个类,而不能new 一个对象?也就是说,如果 var obj= new Object();则obj只能在new这个对象的代码范围内使用,obj就像是一个私有的。
      

  24.   

    不是的obj不是个私有的 而是类似于现在主流OOP语言中的对象。他不能再实例化了。
    而person是个类,可以再实例化当然在object-base的js中,这个解释的概念有误,但是你可以这样理解
      

  25.   


    可以这样理解:
    var obj= new Object();
    obj.getValue=function()
    {
      alert("ok");
    }
    这样定义obj已经是个对象了,所以调用时,可以直接调用,不用再new
    function test()
    {
      this.act = function()
      {
         alert("ok");
      }
    }
    而这种方式,可以简单理解定义了一个test类,类是不能直接调用的,要实例化,所以要new
      

  26.   

    ymzhang55555
    (zym) 
    是这样的,一直未吧js当oo语言。谢谢了
      

  27.   

    http://msdn.microsoft.com/zh-cn/magazine/cc163419.aspx
    这篇文章挺好的,你可以看看