基本的javascript问题

时间:2011-04-29 18:28:45

标签: javascript

我宣布全球:

var myClient;

我有一个功能:

//Contact is a record object that has toString() which prints the name.
function getClient() {
   myClient = new Object();
   debug(input.contact); // This prints properly
   myClient.contact = input.contact;
   debug(myClient.contact); // This prints properly
}

我有另一个尝试使用相同功能的功能:

function dispatchClient() {
    debug(myClient.contact);
}

我看到的结果是未定义的。这里有问题吗? (忽略设计方面)

如果这是错误的,那么如何在函数之间传递全局状态?如果这没有错,那么嗯,我可能需要深入挖掘!

4 个答案:

答案 0 :(得分:3)

dispatchClient被调用之前,可能会调用{p> getClient。此时,myClient仍未定义。

答案 1 :(得分:0)

myclientmyClient是两个不同的变量。

但代码必须仍然有效。除非你在getClient函数之前调用dispatchClient。

答案 2 :(得分:0)

如果您在 dispatchClient()之前调用 getClient(),* myClient *变量将是未定义的。

其他可能性是名称(区分大小写),在dispatchClient()中,您使用的* C * lient与全局变量my * c *不同lient。

如果可能(取决于您的代码),请在开头创建一个实例:

var myclient = new Object();

答案 3 :(得分:0)

当您稍后将对象用作myclient时,您的var为myClient。 Javascript区分大小写,因此这些变量不同。