javascript 객체가 있고 그것에 대한 속성 및 속성 속성을 정의하려고한다고 가정합니다. 즉, 함수를 통해 scaleRatio를 정의하려고합니다. 나는 이것에 대해 어떻게 갈 것인가?함수를 호출하여 JavaScript의 객체 속성 정의하기
나는 내가 다음 Object.defineProperty{canvasData, 'scaleRatio', {enumerable: true, configurable: false};
을 정의 함 canvasData.scaleRatio = function(){};
을 할 수있어?
개체에 속성과 특성을 직접 정의 할 수있는 체계적인 방법이 있습니까? 나는 당신이 define : defineProperty 내부에서 function() {}을 할 수 있다는 것을 알고있다. 그러나 나는 여분의 단계를하고 싶지 않다. canvasData.scaleRatio = 'asdf'; 왜 그냥 object.defineProperty 안에 iffe를 사용할 수 없습니까?
업데이트 : 이것에 대한
내 추론은 내가 setupCanvas를 호출하고 CanvasObject을 초기화 할 것입니다 모든 것이 특성이다. 그 중 일부는 함수를 호출하여 속성을 계산해야합니다. 또한 속성 속성을 지정할 수 있기를 원합니다. 체계적인 방법으로 어떻게 이것을 할 수 있습니까?
function setupCanvas(chart){
canvasData = Object.defineProperties({}, {
scaleRatio: {
value: function(){
console.log('gets here');
var ratio = chart.data.datasets[0].data.reduce(function(prev,curr){
if (prev > curr){
return prev;
}
return curr;
});
return $(canvas).outerWidth()/(scaleRatio + 10);
},
enumerable: true,
configurable: false,
writable: true
}
});
console.log(canvasData.scaleRatio);,
}
여기서 정말로 묻고있는 것을 말할 수 없습니다. getter (값을 함수에서 반환하는 일반 읽기 가능한 속성)를 정의하려고합니다. – jfriend00
"* 왜 그냥 iffe를 object.defineProperty 내부에서 사용할 수 없습니까?"-하지만 할 수 있습니까? – Bergi
@ jfriend00. 혼란을 드려 죄송합니다. 매번 getter가이 계산을 수행하지 않겠습니까? 나는 그것의 속성을 할당 할 때 scaleRatio에 내 함수의 반환 값을 직접 할당하려고합니다. –