JavaScript: 在函数内调用方法输出未定义
JavaScript: Calling a method inside a function outputs Undefined
我是 JavaScript.I 的新手,正在试验对象方法并使用全局函数调用它们。我的问题是:当我在函数内部调用该方法时,它在末尾输出 undefined 以及 answer.Why is that ?
function ShowMessage(msg)
{
if(arguments.length == 1)
{
document.getElementById("message").innerHTML += "<p><i>"+msg+"</i></p>";
}
}
var obj = obj || {};
obj.property1 = "Hello1";
obj.method1 = function(msg)
{
document.getElementById("message").innerHTML +="<p><b>"+msg+"</b></p>";
}
var catalyst = obj.method1(obj.property1);
ShowMessage(catalyst);
输出
Hello1 // in bold
undefined // in italics
看看
obj.method1 = function(msg)
{
document.getElementById("message").innerHTML +="<p><b>"+msg+"</b></p>";
}
这没有 return 任何东西。来电
var catalyst = obj.method1(obj.property1);
将定义一个变量催化剂,它不会自动分配任何值。这被传递给 ShowMessage
wich 然后不出所料地打印 "undefined"。
变化:
obj.method1 = function(msg)
{
document.getElementById("message").innerHTML +="<p><b>"+msg+"</b></p>";
return msg;
}
函数可以return一个值,但默认情况下它们returnundefined
。例如:
function logSomething(){ console.log(arguments); }
logSomething
returns undefined
因为实际上 return 没有任何目的。该函数将被调用,但没有人问它必须说什么。
(如果您要用其他语言(如 C)描述此函数,您可以将其定义为 func logSomething -> Void
,其中 ->
表示函数将 return 的内容,在这种情况下它return进入了虚空,你可以想象这就像在外space中大喊大叫。你大声喊叫,但没有人会听到。)
function multiply(a, b){ return a * b; }
multiply
return 是 a
和 b
相乘的值。调用此函数时,您想要 某些内容returned。如果你 var c = multiply(2,3);
你 想要 c 不是 undefined
而是 6
。在我们前面提到的space-喊叫功能中,您实际上希望有人听到您的声音。这将是 multiply -> Int
)
在编程中,某些函数在具有 return 值时很有用,而其他函数则没有。如果您没有定义 return
语句,则 returned 值将默认为 undefined
.
在您的示例中,您正在修改 DOM,您实际上并不希望某个值被 return 编辑,因此当您记录结果时,它将是 undefined
。
在此处查看 MDN 上的 return
语句文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/return
我是 JavaScript.I 的新手,正在试验对象方法并使用全局函数调用它们。我的问题是:当我在函数内部调用该方法时,它在末尾输出 undefined 以及 answer.Why is that ?
function ShowMessage(msg)
{
if(arguments.length == 1)
{
document.getElementById("message").innerHTML += "<p><i>"+msg+"</i></p>";
}
}
var obj = obj || {};
obj.property1 = "Hello1";
obj.method1 = function(msg)
{
document.getElementById("message").innerHTML +="<p><b>"+msg+"</b></p>";
}
var catalyst = obj.method1(obj.property1);
ShowMessage(catalyst);
输出
Hello1 // in bold
undefined // in italics
看看
obj.method1 = function(msg)
{
document.getElementById("message").innerHTML +="<p><b>"+msg+"</b></p>";
}
这没有 return 任何东西。来电
var catalyst = obj.method1(obj.property1);
将定义一个变量催化剂,它不会自动分配任何值。这被传递给 ShowMessage
wich 然后不出所料地打印 "undefined"。
变化:
obj.method1 = function(msg)
{
document.getElementById("message").innerHTML +="<p><b>"+msg+"</b></p>";
return msg;
}
函数可以return一个值,但默认情况下它们returnundefined
。例如:
function logSomething(){ console.log(arguments); }
logSomething
returns undefined
因为实际上 return 没有任何目的。该函数将被调用,但没有人问它必须说什么。
(如果您要用其他语言(如 C)描述此函数,您可以将其定义为 func logSomething -> Void
,其中 ->
表示函数将 return 的内容,在这种情况下它return进入了虚空,你可以想象这就像在外space中大喊大叫。你大声喊叫,但没有人会听到。)
function multiply(a, b){ return a * b; }
multiply
return 是 a
和 b
相乘的值。调用此函数时,您想要 某些内容returned。如果你 var c = multiply(2,3);
你 想要 c 不是 undefined
而是 6
。在我们前面提到的space-喊叫功能中,您实际上希望有人听到您的声音。这将是 multiply -> Int
)
在编程中,某些函数在具有 return 值时很有用,而其他函数则没有。如果您没有定义 return
语句,则 returned 值将默认为 undefined
.
在您的示例中,您正在修改 DOM,您实际上并不希望某个值被 return 编辑,因此当您记录结果时,它将是 undefined
。
在此处查看 MDN 上的 return
语句文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/return