JavaScript:在函数中调用方法输出Undefined
JavaScript: Calling a method inside a function outputs Undefined
我是一个JavaScript新手。我正在试验对象方法,并用全局函数调用它们。我的问题是:当我调用函数内的方法时,它在最后输出未定义的答案。为什么?
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
函数可以返回一个值,但默认情况下它们返回undefined
。例如:
function logSomething(){ console.log(arguments); }
logSomething
返回undefined
,因为实际上没有返回任何东西的目的。函数将被调用,但没有人问它要说什么。
(如果您想在其他语言(如C)中描述此函数,您可以将其定义为func logSomething -> Void
,其中->
表示该函数将返回的内容,在本例中它返回到Void,您可以想象这就像在外层空间中大喊大叫一样。)你喊了一声,但没人会听到。
function multiply(a, b){ return a * b; }
multiply
返回a
与b
之乘的值。当调用这个函数时,您希望返回一些东西。如果您执行var c = multiply(2,3);
,则希望 c不是undefined
,而是6
。在我们前面提到的空间呐喊功能中,你实际上希望有人听到你的声音。这将是multiply -> Int
)
在编程中,有些函数有返回值时很有用,而有些函数没有返回值。如果没有定义return
语句,则返回值默认为undefined
。
在您的示例中,您正在修改DOM,您实际上不希望返回一个值,因此当您记录结果时,它将是undefined
。
查看MDN的return
语句文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/return
看一下
obj.method1 = function(msg)
{
document.getElementById("message").innerHTML +="<p><b>"+msg+"</b></p>";
}
不返回任何东西。调用
var catalyst = obj.method1(obj.property1);
将定义一个没有自动赋值的变量catalyst。这被传递给ShowMessage
,然后不出所料地打印"undefined"。
改变:
obj.method1 = function(msg)
{
document.getElementById("message").innerHTML +="<p><b>"+msg+"</b></p>";
return msg;
}
- 有没有一种方法可以从两个标签之间提取文本,并以我选择的格式输出
- ajax方法返回错误时如何打印输出
- 有没有一种方法可以捕获JavaScript控制台输出,以便我可以在其他地方引用它
- javascript输出true中的hasOwnProperty方法
- 在 nodejs 中有什么方法可以打印 JSON 格式的 log4js 输出
- 配置早午餐以从一个模板文件输出多个 HTML/JS 文件的正确方法是什么?
- 使用输入/输出事件在 Angular 2 中的父组件中触发方法
- Vue.js 使用 Vuex 和自定义组件,@click方法输出未定义
- 如何仅使用 JavaScript 的 stringify() 方法在第一级自定义 JSON 输出
- 关于确定数组中存储的最大值的不同方法的一些问题(加上输出消息问题)
- 如何将帮助程序方法的输出用作 HAML 哈希中的值
- Javascript call() 方法未生成预期的输出
- 在 JS 中的表单验证方法中获取表单提交方法的输出
- 保存富文本(所见即所得输出)的最佳方法是什么
- pop()方法javascript没有给出完整的输出
- 不理解此forEach()方法的输出
- 使用 AOP 的方法调用前后的 Javascript 控制台输出
- Javascript .match()方法输出
- JavaScript:在函数中调用方法输出Undefined
- 为什么当我使用asp.net中的Response.Write()方法输出javascript代码时,页面中的css样式会