Обратиться к аргументам конструктора из методов класса нельзя, но можно сделать их в конструкторе полями класса:
class Counter {
constructor(value) {
this.value = value || 0; // определяем поле класса value со значением аргумента value
} // либо 0 если аргумент не будет передан
getVaue() {
return this.value;
}
increment() {
return ++this.value;
}
decrement() {
return --this.value;
}
}
Связанный список рекомендую попробовать написать своими силами. Если не хотите сами, то смотрите под спойлером.
spoilerclass Node {
constructor(data) {
this.data = data;
this.next = null;
}
}
class LinkedList {
constructor() {
this.head = null;
this.length = 0;
Array.prototype.forEach.call(arguments, data => this.add(data));
}
add(data) {
const nodeToAdd = new Node(data);
let nodeToCheck = this.head;
if(!nodeToCheck) {
this.head = nodeToAdd;
this.length++;
return nodeToAdd;
}
while(nodeToCheck.next) {
nodeToCheck = nodeToCheck.next;
}
nodeToCheck.next = nodeToAdd;
this.length++;
return nodeToAdd;
}
get(num) {
const nodeToCheck = this.head;
let count = 0;
if(num > this.length) {
return "Doesn't Exist!"
}
while(count < num) {
nodeToCheck = nodeToCheck.next;
count++;
}
return nodeToCheck;
}
remove(num) {
let nodeToCheck = this.head;
let length = this.length;
let count = 0;
let prevNode = null;
if(num > length) {
return "Doesn't Exist!"
}
if(num === 0) {
this.head = nodeToCheck.next;
this.length--;
return this.head;
}
while(count < num) {
prevNode = nodeToCheck;
nodeToCheck = nodeToCheck.next;
count++;
}
prevNode.next = nodeToCheck.next;
nodeToCheck = null;
this.length--;
return this.head;
}
}