0
다음과 같이 내가 Java8에서 Nashorn에서 객체 리터럴에 쓰기 가능하지 않은 속성을 사용하는 것을 시도하고있다 :Nashorn 쓰기 가능한 프로퍼티
'use strict';
var p = { x: {value: 100, writable:false}};
p.x = 200; // should not allow to change x, but it does
print(p.x);
내가 같은 x를 정의하기 때문에 오류가 기대하고있는 곳 코드 (200) 인쇄 쓸 수 없다.
Object.defineProperty() 함수를 사용하여 속성을 만들거나 쓰기 가능한 속성으로 설정하면 작동합니다. 예상대로 다음 코드를 실행하면 오류가 발생, :
'use strict';
var p = { x: {value: 100, writable:false}};
Object.defineProperty(p, "x", {writable:false});
p.x = 200; // An error
print(p.x);
내 질문 왜 첫 번째 경우에 작동하지 않습니다 표현 { x: {value: 100, writable:false}}
false로 쓰기 가능한 속성을 설정하는 것입니다입니까? 그것은 Nashorn 버그입니까, 아니면 뭔가 빠졌습니까?