JavaScript 中的自定义随机数生成器
Custom random number generator in JavaScript
我是用JavaScript创建对象的新手。我需要制作一个不会经常重复的随机数生成器(我没有尝试在下面的代码片段中实现该部分)。如何从RNG.prototype.rand
中的函数RNG(n)
访问n
?它在我的编辑器中显示为无法访问,就像我现在写它的方式一样。我也不确定我应该从RNG
还是RNG...rand()
回来:
function RNG(n) {
this.n = n;
}
RNG.prototype.rand = function() {
var arr = [];
var num = Math.floor(Math.rand()*n);
//keep array of generated numbers
if(num < arr[0]){
arr.unshift(num);
}
else{
arr.push(num);
}
}
在你的代码中,你想要this.n
而不是n
。与某些语言不同,"这个"不是假设的。
为了回答你的另一个问题,你在这里设置它的方式,你想从rand
回来,尽管坦率地说,我不明白你为什么不把n
作为rand()
的参数,而不是制作一个有状态的对象带有构造函数等等。
this.n
是在实例化实例时创建的实例属性:
function RNG(n) {
this.n = n;
}
var rng = new RNG(5);
console.log(rng.n); // 5
RNG.prototype.rand
是一个实例方法。在该方法中,如果要引用实例本身,也应使用 this
。
function RNG(n) {
this.n = n;
}
RNG.prototype.method = function() {
console.log(this.n);
};
var rng = new RNG(7);
rng.method(); // 7, within this method `this` is `rng`, so `this.n` gives you `rng.n`
如果您尝试以下代码:
function RNG(n) {
this.n = n;
}
RNG.prototype.method = function() {
var n = 3;
console.log(n, this.n);
};
var rng = new RNG(7);
rng.method(); // 3, 7
这里没有this.
,n
实际上是在尝试得到一个用var n = 3;
定义的变量。它与实例属性无关rng.n
最后,如果您不定义n
:
function RNG(n) {
this.n = n;
}
RNG.prototype.method = function() {
console.log(n);
};
var rng = new RNG(7);
rng.method(); // ReferenceError: n is not defined
相关文章:
- Dojo不解析自定义小部件的模板html中的小部件声明性
- 在自定义mean.io包中使用angular-chart.js作为依赖项
- jQuery自定义验证比较多个输入的序列
- 从HTTPGET返回一个自定义对象列表,以便在Angular 2应用程序中使用
- 在wordpress一定时间后更改自定义字段
- 表达式引擎扩展开发-向呈现的条目添加自定义javascript
- 自定义函数中的光标位置
- 用于检查数组中是否存在元素的javascript自定义方法
- 绑定时将Parsley minlength消息作为选项传递时,未对其进行自定义
- Meteor-添加用户自定义字段的方法不起作用
- 如何向AlloyUI表单生成器添加自定义属性
- JavaScript 中的自定义随机数生成器
- 创建自定义 d3 生成器
- JQuery API 文档生成器,用于打字稿自定义小部件
- 使用自定义时间设定的随机数
- 在尝试运行命令时处理Yeoman自定义生成器中的错误事件
- 在创建我自己的自定义约曼生成器时,如何在我的Gruntfile中使用提示符中的变量?
- 如何使用javascript创建自定义HTML代码生成器
- 生成具有对数分布和自定义斜率的随机数
- 自定义约曼生成器测试:创建文件