小弟我想问一下js函数在传参的时候,怎么传递引用类型
我想问一下js函数在传参的时候,如何传递引用类型
对js 值类型引用类型不是很了解,隐约知道几种类型的引用类型的,平时也没见过函数传参有写引用类型的。不知道有没有
是这样的,一个ocx控件暴露的一个方法是带有引用类型的,是别的公司的一个delphi 的dll,然后我按照他的意思封装成了ocx的方法
(下面我随便写了一个,这个是vb,)
当注册这个控件之后,在asp.net前台用js调用的时候
我现在想知道的是 js应该怎么做?
如果不能传递引用类型的,那我就还得重新封装一个方法,把所有引用类型的函数的 引用值 通过特殊符号连接然后当做返回值放回来,那里面好多方法呢,这样搞不是蛋疼了。
------解决思路----------------------
先不说能不能在js中调用vb的函数
js中只有对象,数组和函数是引用类型的,其它都不是引用类型的,并且这是固定的,无法单独设定。
注:js的“引用”不同于其它语言的“指针”。“引用”只有在读取时生效,写入时不会生效。
你可以把clas对象本身传给PosRef()函数,在PosRef()函数中修改对象的a和b属性的值即可
------解决思路----------------------
传入对象
js中你不能指定 要引用传值
但是 对象 一定是引用的
那么
Public Function PosRef(ByVal obj As Object) 'b是引用类型
obj.a = a + ":0001a"
obj.b = b + ":0002b"
PosRef = obj.a + obj.b
End Function
我不知道vb对象怎么处理 我乱写的 就是这个意思 传一个对象进来
对js 值类型引用类型不是很了解,隐约知道几种类型的引用类型的,平时也没见过函数传参有写引用类型的。不知道有没有
是这样的,一个ocx控件暴露的一个方法是带有引用类型的,是别的公司的一个delphi 的dll,然后我按照他的意思封装成了ocx的方法
(下面我随便写了一个,这个是vb,)
Public Function PosRef(ByVal a As String, ByRef b As String) 'b是引用类型
a = a + ":0001a"
b = b + ":0002b"
PosRef = a + b
End Function
当注册这个控件之后,在asp.net前台用js调用的时候
function t()
{
var a = document.getElementById("cpTest");
var clas = { a: "aaa", b: "bbb" }; //直接定义 var a,var b 也不是啊
alert(a.PosRef(clas.a, clas.b)); //输出 aaa:0001ab:0002b
alert(clas.a); //输出 aaa
alert(clas.b);//输出bbb 这里应该是 bbb:0002b 才对啊
}
我现在想知道的是 js应该怎么做?
如果不能传递引用类型的,那我就还得重新封装一个方法,把所有引用类型的函数的 引用值 通过特殊符号连接然后当做返回值放回来,那里面好多方法呢,这样搞不是蛋疼了。
------解决思路----------------------
先不说能不能在js中调用vb的函数
js中只有对象,数组和函数是引用类型的,其它都不是引用类型的,并且这是固定的,无法单独设定。
注:js的“引用”不同于其它语言的“指针”。“引用”只有在读取时生效,写入时不会生效。
你可以把clas对象本身传给PosRef()函数,在PosRef()函数中修改对象的a和b属性的值即可
------解决思路----------------------
传入对象
js中你不能指定 要引用传值
但是 对象 一定是引用的
那么
Public Function PosRef(ByVal obj As Object) 'b是引用类型
obj.a = a + ":0001a"
obj.b = b + ":0002b"
PosRef = obj.a + obj.b
End Function
我不知道vb对象怎么处理 我乱写的 就是这个意思 传一个对象进来