如何调用js文件中对象的函数

tyzs2001 2010-04-28 03:10:13
有一个js文件(test.js)里面内容类似以下:
var obj = new Object();
obj.getValue = function( arg )
{
alert( arg );
}
我要在前台asp.net的页面的js代码中调用obj.getValue函数,应该如何调用
...全文
552 37 打赏 收藏 转发到动态 举报
写回复
用AI写文章
37 条回复
切换为时间正序
请发表友善的回复…
发表回复
pprin2008 2010-09-08
  • 打赏
  • 举报
回复
路过。。看看情况。。
jbz001 2010-04-28
  • 打赏
  • 举报
回复
纯属路过·!
ymzhang55555 2010-04-28
  • 打赏
  • 举报
回复
http://msdn.microsoft.com/zh-cn/magazine/cc163419.aspx
这篇文章挺好的,你可以看看
tyzs2001 2010-04-28
  • 打赏
  • 举报
回复
ymzhang55555
(zym)
是这样的,一直未吧js当oo语言。谢谢了
tyzs2001 2010-04-28
  • 打赏
  • 举报
回复
明白了。谢谢
cj205
(阡陌之谜)
了,马上结贴。
ymzhang55555 2010-04-28
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 tyzs2001 的回复:]
经过测试路径是没有问题,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();
则能执行成功!!!
[/Quote]

可以这样理解:
var obj= new Object();
obj.getValue=function()
{
alert("ok");
}
这样定义obj已经是个对象了,所以调用时,可以直接调用,不用再new


function test()
{
this.act = function()
{
alert("ok");
}
}
而这种方式,可以简单理解定义了一个test类,类是不能直接调用的,要实例化,所以要new
Mr-Jee 2010-04-28
  • 打赏
  • 举报
回复
不是的obj不是个私有的 而是类似于现在主流OOP语言中的对象。他不能再实例化了。
而person是个类,可以再实例化

当然在object-base的js中,这个解释的概念有误,但是你可以这样理解
tyzs2001 2010-04-28
  • 打赏
  • 举报
回复
[Quote=引用 28 楼 cj205 的回复:]
这是二样东西

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

var obj = new Object(……
[/Quote]

您的意思是不是:var obj = new object();在此处已经是一个对象了,而 function person(){...} 还只是一个类.所以在前台可以new 一个类,而不能new 一个对象?也就是说,如果 var obj= new Object();则obj只能在new这个对象的代码范围内使用,obj就像是一个私有的。
jianglin28290 2010-04-28
  • 打赏
  • 举报
回复
前提是你的js引用时成功的,你的代码是没有错误的,你使用firefox用firebug看一下
Mr-Jee 2010-04-28
  • 打赏
  • 举报
回复
这是二样东西

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

var obj = new Object();这个和var a = 5;是没有区别的
wangfuxiang 2010-04-28
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 tyzs2001 的回复:]
经过测试路径是没有问题,test.js已在head中引用。
test.js代码如下:
var obj= new Object();
obj.getValue=function()
{
alert("ok");
}
前台js定义如下: var o = new obj();o.getValue();前台执行后提示错误为,obj不支持此方法。
但是如果test.js是如下定义的话则前……
[/Quote]
因为方法也是对象,你引入js文件后new这个对象,再调它属性方法这样是指定没问题的。
tyzs2001 2010-04-28
  • 打赏
  • 举报
回复
cj205
(阡陌之谜)
是不是在对象外部"追加"的方法必须要使用 obj.prototype.function 这种方式,但是我看到有的代码也有我的那种写法: var obj = new Object();obj.func= function(){...}
Mr-Jee 2010-04-28
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 tyzs2001 的回复:]

经过测试路径是没有问题,test.js已在head中引用。
test.js代码如下:
var obj= new Object();
obj.getValue=function()
{
alert("ok");
}
前台js定义如下: var o = new obj();o.getValue();前台执行后提示错误为,obj不支持此方法。
但是如果test.js是如下定义的话……
[/Quote]
具体的示例我给你了
如果有什么问题可以问
tyzs2001 2010-04-28
  • 打赏
  • 举报
回复
经过测试路径是没有问题,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();
则能执行成功!!!
ymzhang55555 2010-04-28
  • 打赏
  • 举报
回复
obj.getValue("ok")

这样直接调用肯定是没问题的。提示obj不存在,可能是因为obj在test.js中定义时有语法错误,使对象没有成功加载,所以找不到。还有可能是调用时,还没有完成对象加载,也就是在引用test.js文件之前就被调用了。
wangfuxiang 2010-04-28
  • 打赏
  • 举报
回复
如果这样都不行那就是你的引的路径有问题了。
wangfuxiang 2010-04-28
  • 打赏
  • 举报
回复
你先不要把方法作为对象属性添加进去,你在js文件里就直接写那个方法。function getValue(){}
孟子E章 2010-04-28
  • 打赏
  • 举报
回复
路径引用正确,就应当没问题,注意相对路径的位置
dragonlong2 2010-04-28
  • 打赏
  • 举报
回复
检查
<script type="text/javascript" src="路径/test.js"></script>
中的“ 路径/test.js ”是不是test.js的实际路径,

alert(obj);
可以测试test.js是否引用成功
tyzs2001 2010-04-28
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 net_lover 的回复:]
js文件在head中用link引,??
应该使用script吧
[/Quote]

我开始也在<script>中引用,但是不行后,我就用link试一试。
加载更多回复(17)

87,907

社区成员

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

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