将对象传递给javascript中的函数

时间:2014-01-03 04:44:12

标签: javascript function object

这可能看起来像一个菜鸟问题,但我不知道该怎么做。我有两个变量的功能。

function someInfo(myVar1,myVar2)
{
    this.lmyVar1=myVar1;
    this.myVar2=myVar2;
}

myInstance=new someInfo("string1","string2");

function drawVariables(){
    document.write(myInstance.myVar1);
    document.write(myInstance.myVar2);
}

我想对多个实例使用相同的drawVariable()。我只是无法弄清楚它的确切语法。如何使drawVariable()使用someInfo的不同实例而不重复任何内容?是否有一个我可以遵循的简单示例或教程?

3 个答案:

答案 0 :(得分:4)

在函数drawVariables的定义中添加一个参数。在下面的代码中,此参数称为info。现在,您可以在info函数中使用drawVariables作为对象,并在调用drawVariables函数时,可以传递您想要传递的任何实例。 drawVariables函数现在可以在调用时传递给它的任何实例。

function someInfo(myVar1,myVar2)
{
    this.myVar1=myVar1;
    this.myVar2=myVar2;
}

// Create two separate instances
myInstance=new someInfo("string1", "string1");
myInstance2 = new someInfo("string2", "string2");

// info is the argument that represents the instance passed to this function
function drawVariables(info){
    alert(info.myVar1 + ", " + info.myVar2);
}

// Call the function twice with different instances
drawVariables(myInstance);
drawVariables(myInstance2);

请参阅http://jsfiddle.net/WLHuL/了解演示。

答案 1 :(得分:1)

function drawVariables(instance){
    document.write(instance.myVar1);
    document.write(instance.myVar2);
}

答案 2 :(得分:0)

你这样做会有意义吗?

function someInfo(myVar1, myVar2)
{
    this.lmyVar1 = myVar1;
    this.myVar2 = myVar2;
    this.drawVariables = function ()
    {
        document.write(this.lmyVar1);
        document.write(this.myVar2);
    }
}


function Test()
{
    var obj1 = new someInfo("aaa", "bbb");
    var obj2 = new someInfo("xxx", "zzz");

    obj1.drawVariables();
    obj2.drawVariables();
}