programing

자바 스크립트는 문자열에서 동적으로 객체 메소드를 호출합니다.

nasanasas 2020. 9. 23. 07:41
반응형

자바 스크립트는 문자열에서 동적으로 객체 메소드를 호출합니다.


메서드 이름을 문자열로 갖는 개체 메서드를 동적으로 호출 할 수 있습니까? 나는 다음과 같이 상상할 것입니다.

var FooClass = function() {
    this.smile = function() {};
}

var method = "smile";
var foo = new FooClass();

// I want to run smile on the foo instance.
foo.{mysterious code}(); // being executed as foo.smile();

속성 이름이 변수에 저장되어 있으면 []

foo[method]();

객체의 속성은 배열 표기법을 통해 액세스 할 수 있습니다.

var method = "smile";
foo[method](); // will execute the method "smile"

메서드는 eval을 사용하여 호출 할 수있는 방법이 eval("foo." + method + "()");좋지 않을 수 있습니다.


객체 내부에서 함수를 호출 할 때 함수 이름을 문자열로 제공해야합니다.

var obj = {talk: function(){ console.log('Hi') }};

obj['talk'](); //prints "Hi"
obj[talk]()// Does not work

참고 URL : https://stackoverflow.com/questions/9854995/javascript-dynamically-invoke-object-method-from-string

반응형