자바스크립트 심오한 질문 ㅡㅡ
내가 객체를 하나 만들엇음
이 객체의 메서드를 호출할떄 메서드를 호출 하기전에 뭔가 작업을 해야하는데 아이디어가 떠오르지않음
getter는 한개의 프로퍼티에만 되니까 getter는 못씀
코드로설명하면 예를들어
var foo = { bar : function() { console.log('hi'); }}
foo.man(); // 당연히 에러나겟지? 근데 man이라는 메서드를 호출하기전에 뭔가 작업을 하고싶음.
한마디로 컴파일러는 foo를 읽고 foo.man()을 호출하기전에 뭔가 작업을하고 에러를 내야된다 이말임.
ㅇㅋ? 솔루션좀
if(!foo.mean) { // do something } 질문이 이게 맞나
그니까 어떻게하냐고 ㅡㅡ 설마 foo 하고 foo.man 사이에 console넣으라는 개소리는아니겟지?
님은 XY 프라블럼을 겪고 계신거 같음
foo.man(), foo.woman() foo.boy() 호출될수잇는 모든메서드명에 대해서 전처리기처럼 먼저작업을 해야하는데 생각이안떠올라 ㅡㅡ 그니까 foo안에선언되잇든 선언이 안되잇든 무조건 무조건 선작업을해야한다고
먼 XY프라브럼이야 미친 ㅡㅡ
es6이면 proxy에 apply속성주면되고
hooks
http://www.velvetcache.org/2010/08/19/a-simple-javascript-hooks-system
뭔개소리야
호출할 이름의 목록을 미리 갖고있으면 안어려움
대리자를 구현하던지 래핑 클래스를 만드시던지
ㅇㅇ님이 주신 링크가봣는데 그렇게하면 call이라는걸 붙여야되서 안될 것 같음. call같은ㅅ것도 부치면안됨. 한마디로 진짜 자바스크립트엔진이 내부프로퍼티를 찾을때 못찾으면 에러를 내기직전에 작업을해야되는데 방법이없을라나
목록이 없으면 일반적인 방법으로 안될텐데
트라이 캐치말하는거임?
아 래핑클래스쓰는거나 hooks 쓰는거나 뭐가틀림
흠.. 내부적으로 건드릴방법ㅂ은 없는듯 조언주신분들 ㄳ
님이 원하는 기능이 다른언어에는 있음? 질문을 아직 잘 모르겠음