Это правильное Машинопись (или ES6, если вы игнорируете статической типизации):ES6 и Машинопись, функция класса свойства без конструктора
class Greeter {
greeting: string;
constructor(message: string) {
this.greeting = message;
}
greet() {
return "Hello, " + this.greeting;
}
}
var greeter = new Greeter("world");
console.log(greeter.greet()); //Hello world
Но следующее создает Hello undefined
, как бы вы переписать это таким образом, это было бы Работа? И если это невозможно, какова была бы альтернатива для достижения этого?
Я просматриваю передаваемые переменные непосредственно в функции.
class Greeter {
greet(greeting: string) {
return "Hello, " + this.greeting;
}
}
var greeter = new Greeter();
console.log(greeter.greet("world")); //Hello undefined
UPDATE:
Я имею в виду PHP как использование класса как:
class Greeter {
public function greet($greeting){
return $greeting;
}
}
Почему вы ожидаете, что 'this.greeting' удерживает значение, переданное как параметр,' greet'? –
Возможный дубликат [Javascript: мне нужно поместить this.var для каждой переменной в объект?] (Http://stackoverflow.com/questions/13418669/javascript-do-i-need-to-put-this- var-for-every-variable-in-an-object) – Bergi
'greeting' - это переменная (объявленная как именованный параметр), а не свойство экземпляра. Никакой разницы в ES5, кстати. – Bergi