나는 JavaScript 에서 두 개의 값을 반환할 수 있다. 가능하지?
var newCodes = function() {
var dCodes = fg.codecsCodes.rs;
var dCodes2 = fg.codecsCodes2.rs;
return dCodes, dCodes2;
};
아니, 값이 들어 어레이에서는 확장하지만 돌아갈 수 있었다.
function getValues() {
return [getFirstValue(), getSecondValue()];
}
그런 다음 그들을 액세스하려면 같은 있습니다.
var values = getValues();
var first = values[0];
var second = values[1];
이번 [ECMAScript 6 구문] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment) * 반환 값은 더 직관적으로 데스트루스트로이 수도 있습니다.
const [first, second] = getValues();
설치할 경우 " labels"; 각 반환되었습니다 값 (유지하기 위해 간소화하는지) 의 객체를 반환할 수 있습니다.
function getValues() {
return {
first: getFirstValue(),
second: getSecondValue(),
};
}
그리고 그들을 액세스하려면.
var values = getValues();
var first = values.first;
var second = values.second;
또는 ES6 문법:
const {first, second} = getValues();
[이 표] (https://kangax.github.io/compat-table/es6/), * 지켜보리니 sup> <, 브라우저 호환성. 현대의 모든 브라우저에서 기본적으로 ie 별도로 수 있지만, 이를 지지하는 구문을 es6 컴파일하십시오 아래로 ie 호환 http://support. 제작 기간 같은 도구를 사용하여 javascript 코드를 [바벨] (https://babeljs.io/) .< /sup>;
이후 1.7 사용하여 Javascript 에서 이렇게 할 수 있습니다. [1] [" assignments" 데스트루스튜링;;] 참고로, 이러한 사용할 수 없는 Javascript 의 이전 버전 (릴리즈됨 - ECMAScript 3rd disk_b_s10database 괜찼습니다 함께 5 에디션입니다).
동시에 1+ 변수를 지정할 수 있습니다.
var [x, y] = [1, 2];
x; // 1
y; // 2
// or
[x, y] = (function(){ return [3, 4]; })();
x; // 3
y; // 4
[객체에는 데스트루스튜링 속성 값을 결합된 대표] 을 사용할 수도 있습니다. 3 값을 반환할 객체의 이름을 선택한 후 아웃해야 수준들과 운영까지도:
let {baz, foo} = (function(){ return {foo: 3, bar: 500, baz: 40} })();
baz; // 40
foo; // 3
return 1, 2, 3;
// becomes
return 2, 3;
// becomes
return 3;
[2]: # Browser_compatibility https://developer.mozilla.org/en-us/docs/web/javascript/reference/operators/destructuring_assignment
그냥 객체를 반품하십시오 ipv6-literal.
function newCodes(){
var dCodes = fg.codecsCodes.rs; // Linked ICDs
var dCodes2 = fg.codecsCodes2.rs; //Linked CPTs
return {
dCodes: dCodes,
dCodes2: dCodes2
};
}
var result = newCodes();
alert(result.dCodes);
alert(result.dCodes2);
이후 ES6 이렇게 할 수 있습니다
let newCodes = function() {
const dCodes = fg.codecsCodes.rs
const dCodes2 = fg.codecsCodes2.rs
return {dCodes, dCodes2}
};
let {dCodes, dCodes2} = newCodes()
{} , 및 속성 값을 dCodes2 다고데스 복귀하십시오 표현식에서는 '이' 대표 '는 {다고데스 것과 같습니다. 다고데스, dCodes2: dCodes2} '.
이 마지막 줄 호출됨 객체에는 대한 할당에서는 성능을 보완한 할당에서는 . 이 같은 이름의 가변 객체의 속성 값을 추출 및 할당합니다. # 39 와 같은 다른 이름을 변수 값을 반품하십시오 you& 할당할 경우, d 'let it 이렇게 할 수 있는 {다고데스: x, dCodes2: y} = 뉴커즈 () '
Ecmascript 6 dm_ownerdm_owner " 데스트루스튜링 assignments"; (강악 언급한 대로) 그래서 모든 브라우저에서 아닌 그냥 firefox), ll you& # 39 라는 값을 배열입니다 캡처하려면 있어야 할 필요 없이 어레이나 객체에는 저들이요 캡처을 위한 용도로만
//so to capture from this function
function myfunction()
{
var n=0;var s=1;var w=2;var e=3;
return [n,s,w,e];
}
//instead of having to make a named array or object like this
var IexistJusttoCapture = new Array();
IexistJusttoCapture = myfunction();
north=IexistJusttoCapture[0];
south=IexistJusttoCapture[1];
west=IexistJusttoCapture[2];
east=IexistJusttoCapture[3];
//you'll be able to just do this
[north, south, west, east] = myfunction();
Firefox 에서 아웃해야 이미 볼 수 있습니다!
물론 다른 객체 생성을 사용하여 기여하는 대표 외에 새롭게 도입된 구문은 (ES6) 성능을 보완한 할당에서는.
function fun1() {
var x = 'a';
var y = 'b';
return { x, y, z: 'c' };
// literally means { x: x, y: y, z: 'c' };
}
var { z, x, y } = fun1(); // order or full presence is not really important
// literally means var r = fun1(), x = r.x, y = r.y, z = r.z;
console.log(x, y, z);
그러나 다행히 이 구문은 폴리필드 수 있는 바벨 또는 기타 js 폴리피예르 크롬과 파이어폭스 브라우저에서 기본적으로 최신 버전의 함께 기존의 작동합니다.
그러나 새로운 개체를 만드는, 메모리 할당 (, 최종 gc 로드) 와 관련이 있어, it 에서 don& # 39, 어느 정도의 성능을 기대할 수 없다. JavaScript 가 가장 높은 것은 언어 개발을 위한 최적의 창조하셨노 애니웨이 신앙이니라 필요한 것은 그 주변 에 있는 보통 객체 또는 기술을 볼 수 있습니다, 퍼팅 등 사용자 사이의 일반적인 성능 요령, Java, JavaScript '로 끝난다.
이것은 좋은 방법입니다
function a(){
var d=2;
var c=3;
var f=4;
return {d:d,c:c,f:f}
}
그러면
a().f
4 반품하십시오.
이 코드는 ES6 에서 사용할 수 있습니다.
function a(){
var d=2;
var c=3;
var f=4;
return {d,c,f}
}
돌아온 이외의 다른 호스트였든 어레이에서는 로케이터로 %s/dbase/ext_table. 권장됨, 사용할 수도 있습니다 모음기 함수 (발견된 것과 유사한 작은 음모가 ):
function a(collector){
collector(12,13);
}
var x,y;
a(function(a,b){
x=a;
y=b;
});
I made a 에스페르프 테스트하려면 세 가지 방법 중 하나를 확인할 빠르다. 가장 빠른 및 모음기 최저속 배열이 있다.
Js, 우리가 쉽게 할 수 있는 하나의 튜플 () 가 있지만, 복귀하십시오 어레이나 객체에는 것을 잊지 마십시오! = >. JS 는 콜백하는 '비밀' 이 돌아온 이유가 있고, 여러 언어, 조금 정위되도록 " values". 아직 없는 것, 이거 드세요.
var newCodes = function() {
var dCodes = fg.codecsCodes.rs;
var dCodes2 = fg.codecsCodes2.rs;
return dCodes, dCodes2;
};
됩니다
var newCodes = function(fg, cb) {
var dCodes = fg.codecsCodes.rs;
var dCodes2 = fg.codecsCodes2.rs;
cb(null, dCodes, dCodes2);
};
)
딱! 이것은 간단히 해결하는 또 다른 차원의 문제다.
꼭 이래야겠어요 제안하세요 최신값 데스트루스튜링 할당에서는 사용할 수 있지만 (smartupdate it& # 39 의 사용자 환경에서 지원되는)
var newCodes = function () {
var dCodes = fg.codecsCodes.rs;
var dCodes2 = fg.codecsCodes2.rs;
return {firstCodes: dCodes, secondCodes: dCodes2};
};
var {firstCodes, secondCodes} = newCodes()
매우 일반적인 방법은 여러 값을 javascript 객체 리터럴을 복귀하십시오 다음과 같은 항목을 도왔으매 사용하고 있습니다
const myFunction = () => {
const firstName = "Alireza",
familyName = "Dezfoolian",
age = 35;
return { firstName, familyName, age};
}
다음과 같은 값을 받기.
myFunction().firstName; //Alireza
myFunction().familyName; //Dezfoolian
myFunction().age; //age
심지어 짧은 운행에서어떠한:
const {firstName, familyName, age} = myFunction();
개별적으로 수 있으며, 다음과 같은
firstName; //Alireza
familyName; //Dezfoolian
age; //35
내가 아는 두 가지 방법이 있습니다.
<script>
// Defining function
function divideNumbers(dividend, divisor){
var quotient = dividend / divisor;
var arr = [dividend, divisor, quotient];
return arr;
}
// Store returned value in a variable
var all = divideNumbers(10, 2);
// Displaying individual values
alert(all[0]); // 0utputs: 10
alert(all[1]); // 0utputs: 2
alert(all[2]); // 0utputs: 5
</script>
<script>
// Defining function
function divideNumbers(dividend, divisor){
var quotient = dividend / divisor;
var obj = {
dividend: dividend,
divisor: divisor,
quotient: quotient
};
return obj;
}
// Store returned value in a variable
var all = divideNumbers(10, 2);
// Displaying individual values
alert(all.dividend); // 0utputs: 10
alert(all.divisor); // 0utputs: 2
alert(all.quotient); // 0utputs: 5
</script>
이 질문을 할 수 있도록 주요 부품을 누각되었습니다 추가 검색 결과에 따라 전체 리소스에만 이 들려온다.
const newCodes = () => {
let dCodes = fg.codecsCodes.rs;
let dCodes2 = fg.codecsCodes2.rs;
return { dCodes, dCodes2 };
};
//destructuring
let { dCodes: code1, dCodes2: code2 } = newCodes();
//now it can be accessed by code1 & code2
console.log(code1, code2);
const newCodes = () => {
//...
return [ dCodes, dCodes2, dCodes3 ];
};
let [ code1, code2 ] = newCodes(); //first two items
let [ code1, ,code3 ] = newCodes(); //skip middle item, get first & last
let [ ,, code3 ] = newCodes(); //skip first two items, get last
let [ code1, ...rest ] = newCodes(); //first item, and others as an array
이 질문에 이 추가할 수 있는 몇 가지 가치를 좋겠다:)
며칠 전 비슷한 기능을 제공하는 여러 조건을 얻을 수 있는 값을 반품하십시오 경식도 나는 내가 만든.
다음은 사례를 내가 그랬지.
function myTodayDate(){
var today = new Date();
var day = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];
var month = ["January","February","March","April","May","June","July","August","September","October","November","December"];
var myTodayObj =
{
myDate : today.getDate(),
myDay : day[today.getDay()],
myMonth : month[today.getMonth()],
year : today.getFullYear()
}
return myTodayObj;
}
var todayDate = myTodayDate().myDate;
var todayDay = myTodayDate().myDay;
var todayMonth = myTodayDate().myMonth;
var todayYear = myTodayDate().year;
이 질문은 이 전체 집중식으로 자동 응답기가 공유할 수 있는 좋은 외곽진입 얻는 날짜 형식. 이를 수 있다.)