我正在浏览Nodeschool exercise on Generators。
第二个练习的解决方案是:
function *factorial (n) {
var result = 1;
for (var i = 1; i <= n; i++) {
result *= i;
yield result;
}
}
for (var n of factorial(5)) {
console.log(n)
}
result *= i
是什么意思?
答案 0 :(得分:1)
答案 1 :(得分:1)
Object-Oriented JavaScript - Second Edition: 还有一系列运营商是a的组合 赋值和算术运算符。 这些被称为化合物 运营商即可。它们可以使您的代码更紧凑。
让我们看一些例子:
var a = 5;
a = a + 3; // 8
更短的方式:
var a = 5;
a += 3; // 8
在你的代码中:
result *= i;
相当于:
result = result * i;
答案 2 :(得分:0)
根据您的问题,我认为您对*
function*
上的generator
感到困惑,这是*=
的声明*
。第二种情况中的a = a * b;
是<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>RDCS</title>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<script src="js/ang.js"></script>
</head>
<body>
<div align=center ng-app="myApp" ng-controller="myCtrl">
<h1>Student Record</h1>
<form>
Name: <input type="text" name="Name" ng-model="Name"><br><br>
Class: <input type="text" name="Class" ng-model="Class"><br><br>
Roll No:<input type="text" name="RollNo" ng-model="RollNo"><br><br>
<input type="submit" value="Save" ng-click="submit()">
</form>
</div>
</body>
</html>
的简写操作符,如前所述,但第二种情况是编译器将生成器与正常函数区分开来的标识符