여기에 : http://www.phpied.com/3-ways-to-define-a-javascript-class/은 자바 스크립트에서 "클래스"를 정의하는 3 가지 방법으로 설명됩니다. 나는 제 3 방법을 사용하는 내 코드에서 선택한 : 나는 내가 가지고있는 의미, 네임 스페이스에서 코드를 분리하는 방법으로이 구성을 사용javascript "class"변수가 정의되지 않았습니다.
var apple = new function(){
//code here
}
더 많은 변수 같은 JS 파일에 사과, 각 하나 같은 이름의 함수를 포함 할 수 있습니다.
var customer = new function(){
this.URL = "//customer/";
this.json = {};
this.getData = function(id){
this.prepareForm();
this.json = requestData(this.URL); //requestData deffined in another place
}
this.save = function(){
//code
}
this.validate = function(){
//code
}
this.prepareForm = function(){
//code
}
// more code here
}
var employee = new function(){
//code here, something like the customer code
}
var partner = new function(){
//code here, something like the customer code
}
지금, 나는 가끔 this.URL이 정의되지 않은입니다 것으로 나타났습니다. this.prepareForm() 함수가 있으며, 정의되어 있으며 컨텍스트에서 실행 중이므로 변수가 존재하지 않으므로 customer.URL 대신 호출해야합니다. 그러나 이것은 때로는 때때로는 아니며, 왜 그리고 언제 어떻게되었는지를 이해하지 못했습니다.
의견이 있으십니까? 왜 이런 일이 일어나는가?
"prepareForm"함수를 이벤트 처리기와 같이 전달하면 해당 개체와의 관계가 손실됩니다. – Pointy
'this.validate() {'가 올바르게 보이지 않습니까? 'this.validate = function() {'? –
또한 블로그 게시물은 자바 스크립트 우수 사례 표준에 의해 * 실제로 * 오래되었음을 유의하십시오. – Pointy