2010-12-05 5 views
4

나는 문자 표기법 자바 스크립트 객체를 만들고있어를 사용하여 자바 스크립트 객체를 만드는,하지만 난 개체를 만드는 방법을 모르겠어요은이 같은 매개 변수가 나타납니다리터럴 표기법

hi.say({title: "foo", body: "bar"}); 

대신 hi.say("foo", "bar");.

현재 코드 :

var hi = { 
    say: function (title, body) { 
     alert(title + "\n" + body); 
    } 
}; 

나는 사람들이 제목을 건너 뛰고 몸을 넣어, 및 기타 여러 매개 변수에 대해 동일한 작업을 수행 할 수 있기를 원하기 때문에 즉 원하는 이유.

은 그래서 나는 우리가 jQuery를 기능 '매개 변수 {parameter:"yay", parameter:"nice"}

P.S.을 사용하는 방법과 같은 뭔가가 필요 이유 나는 현재의 방법을 수정하기 위해 열었습니다. 많은 매개 변수들이 필요하고 어떤 것은 필수이고 어떤 것은 선택적이며 특정 방법으로 정렬 될 수 없다는 것을 명심하십시오.

그것을위한 특별한 매개 변수 구문, 그냥 함수가 단일 매개 변수를 사용하게하고, 그 객체가 될 것 없다

답변

6

:

이 같은
var hi = { 
    say: function(obj) { 
    alert(obj.title + "\n" + obj.body); 
    } 
} 
0
var hi = { 
    say: function(opts) { 
    var title = (opts.title)?opts.title:"default title"; 
    var body = (opts.body)?opts.body:"default body"; 

    // do whatever with `body` and `title` just like before 
    // ... 
    } 
}; 
1

뭔가 작동합니다 :

var hi = { 
    say: function(options) { 
     if (options.title) alert(options.title + "\n" + options.body); 
     else alert('you forgot the title!'); 
    } 
} 


hi.say({ //alerts title and body 
    "title": "I'm a title", 
    "body": "I'm the body" 
}); 
hi.say({ //alerts you for got the title! 
    "body": "I'm the body." 
});