这里是 JS 新手。我在替换和重复函数中的值时遇到问题。代码如下:
function Phone(ring) {
this.ring = ring;
}
function updateRing(newRing) {
this.newRing = ring;
}
var samsung = new Phone('Chim');
samsung.ring(2); // Needs to compute to "Chim, Chim"
var htc = new Phone('Dada');
htc.ring(3); // Needs to compute to "Dada, Dada, Dada"
htc.updateRing('Riri');
htc.ring(1); // Needs to compute to "Riri"
对于第一个函数的重复值,我尝试使用 this.repeat 但它在 Phone 函数中不起作用。
对于updateRing函数,我无法获取替换this.ring的代码。
我删除了我编写的所有无用代码。预先感谢您的任何帮助。
最佳答案
您可以使用string.repeat()
重复字符串
let a = "ring"
console.log(a.repeat(2))
但是为了让逗号分隔符干净地工作,您可以创建一个一次性数组,并且join()
带有逗号。
let ringString = Array(3).fill("ring").join(", ")
console.log(ringString)
对于其他人,您可能想要使用类,这非常简单,但如果没有 ployfill,则不要在 IE 上运行。或者原型(prototype),一开始可能会有点令人困惑。以下是使用原型(prototype)在 Phone
对象上定义方法的示例:
function Phone(ring) {
// changed to ring_tone too prevent clash with this.ring method
this.ring_tone = ring;
}
// you need to define these on the prototype to you can use `this`
Phone.prototype.updateRing = function(newRing) {
// don't need to define a this.newRing, just update the ring
this.ring_tone = newRing;
}
Phone.prototype.ring = function(n) {
return new Array(n).fill(this.ring_tone).join(', ')
}
var samsung = new Phone('Chim');
console.log(samsung.ring(2)); // Needs to compute to "Chim, Chim"
var htc = new Phone('Dada');
console.log(htc.ring(3)); // Needs to compute to "Dada, Dada, Dada"
htc.updateRing('Riri');
console.log(htc.ring(1)); // Needs to compute to "Riri"
关于javascript - 用 JS 重复值和替换值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50478522/