이후 connections
및 messages
어레이 인덱스를 나타내지 않는 개체의 [
및 ]
있지만, 변수가 변수의 이름을 찾는 데 사용되는 접속 부재의 구문 않고있다. path = 'x'
이후
var path = 'x'
connections[path] = connections[path] || [];
위를
은,
path
의 값으로 명명 된 두 개체의 회원이 그것을 계속 존재하는 경우, (그 자체로 현재의 값을 할당) 말하는
connections.x = connections.x || [];
같다 그렇지 않으면 (||
이 여기에 병합에 사용됨) 새 비어있는 배열 또는 각각 { version: 0, body: '' }
을 새로 만듭니다.
병합/논리 OR은 왼쪽에서 오른쪽으로 쉽게 연결될 수 있습니다. 이는 경우, connections[ path ] === null
경우 또는 connections[ path ] === undefined
있는지 확인하기 위해 우리가 검사를 수행하는 connections[ path ] = connections[ path ] || [];
너무
function createItem(color) {
// if a color is specified in the arguments, use that
// otherwise, if a color is specified in the settings object for this instance
// of the current user control, use that. otherwise, fall back to the global
// default values. if none of these settings have been defined, use black.
color = color || instanceSettings.defaultColor
|| globalSettings.defaultColor
|| '#000000';
...
}
pendantic이기 때문에'{}}는 ('Object'가 덮어 쓰기되지 않은 경우에도)'new Object()'와 같지 않습니다. 그러나 충분히 가깝습니다. 차이는 미묘하며 차이점을 결코 눈치 채지 못할 것입니다. –
@ tri : 차이점이 무엇인지 실제로 말하지 않으면 작은 pedantic 세부 오류를 지적하는 것이 도움이되는지 확신 할 수 없습니다. –
@ trinithis-do tell. ES5 11.1.5는 다음과 같이 말합니다 :'Production ObjectLiteral : {}은 다음과 같이 평가됩니다 : 1. 새로운 Object()라는 표현식에 의해 생성 된 새로운 객체를 반환합니다. Object는 그 이름을 가진 표준 내장 생성자입니다. 그렇다면 "미묘한 차이"란 무엇입니까? – RobG