以下是我的代码:
HTML:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Using Require js for modular loading of scripts.</title>
<!--Requirejs first loads the module that is specified in data-main .. So it will load the module init,init has two dependencies first is knockout so it loads the knockout first, then myAppViewModel next -->
<script type="text/javascript" data-main="scripts/init.js" src="scripts/require.js"></script>
</head>
<body>
Name : <span data-bind="text: myName"></span>
</body>
</html>
init.js
require(['knockout-3.2.0', 'myAppViewModel'], function(ko, myAppViewModel) {
ko.applyBindings(myAppViewModel());
});
myAppViewModel.js
define(function () {
return function myAppViewModel() {
this.myName = 'Sudheer';
};
});
如果我删除上述功能中的返回。它说myAppViewModel()不是构造函数。为什么在这种情况下需要返回?
答案 0 :(得分:0)
要求js调用您传递给define()
的函数以获取模块的实例。所以无论你从外部函数返回什么,它都是你的模块。
如果从那里的代码中删除return
,则外部函数不返回任何内容,因此需要js为您的模块获取的值为undefined
。
这就是你需要一个return语句的原因。