이것이 가능한지 알고 싶습니다. 나는 웹 개발자로서 4 년 동안 Javascript를 사용 해왔다. 그래서 나는 익명의 함수를 사용하는 것에 익숙하다. 이제 Processing을 테스트 해보니, 자바 스크립트로 일반적으로하는 모든 것을 어떻게 수행 할 수 있는지보고 싶습니다. 자바 스크립트에서Java 처리, 익명 함수 사용
, 정말 같은 기능을 사용
fn.call(instance,arg1, arg2);
또는
fn.apply(instance,args);
이 ... 그러나, 내가 처리에서 그런 일을 할 수 아니에요.
내가 "익명 함수"를 호출하고 인스턴스의 네임 스페이스의 기능을 실행하기 위해 노력하고있어 :
public void resetHealth(){
this.health = 10;
}
class Player{
public int health;
Player(){
super();
this.health = 10;
}
}
Player p = new Player();
//where it gets prickly:
resetHealth.invoke(p);
예상 결과 : 나는 난 무엇을 알고 싶어 print p.health; //returns 0
Java에 대한 일은 잘못되었습니다. 그러나 처리와 관련이있을 수 있습니다. 장기에
왜 resetHealth가 Player 클래스 외부의 함수입니까? 'this'는 이제 그 메소드에서 문맥이나 의미가 없습니다. –
이유는 클래스 내부에 함수를 넣는 대신 함수를 공유하고 전달할 수 있기 때문입니다. 그렇게 할 수있는 방법이 있습니까? –
Java 8 [메소드 참조] (https://docs.oracle.com/javase/tutorial/java/javaOO/methodreferences.html)를 참조하십시오. 그러나 간단하게 [인터페이스] (https://docs.oracle.com/javase/tutorial/java/concepts/interface.html)를 정의하고 대신 해당 인터페이스를 구현하는 객체를 전달하는 것이 좋습니다. "객체를 메서드 안에 넣는 것"은 좋습니다 :) – paulsm4