programing

AngularJ: 상수

elseif 2023. 3. 25. 10:52

AngularJ: 상수

설명서에 따르면 상수와 값의 유일한 차이점은 앱 구성 단계에서 상수를 사용할 수 있는 반면 값은 실행 단계에서만 사용할 수 있다는 것입니다.

왜 이런 경우에 가치가 필요한지 궁금하네요.그들은 정말로 단지 제한된 상수들 아닌가요?

상수는 어디에나 주입할 수 있다.

상수는 장식자에 의해 가로채질 수 없습니다. 즉, 상수의 값은 절대 변경되지 않습니다.

var app = angular.module('app', []);

app.constant('PI', 3.14159265359);

app.config(function(PI){
    var radius = 4;
    //PI can be injected here in the config block
    var perimeter = 2 * PI * radius;
});

app.controller('appCtrl', function(PI) {
    var radius = 4;
    // calculate area of the circle
    var area = PI * radius * radius; 
});

값은 Configuration에 삽입할 수 없지만 데코레이터에 의해 대행 수신될 수 있다는 점에서 상수와 다릅니다.

var app = angular.module('app', []);

app.value('greeting', 'Hello');

app.config(function ($provide) {
    $provide.decorator('greeting', function ($delegate) {
        return $delegate + ' World!';
    });
});

과 상수의 차이는 상수를 사용하여 지정된 값이 설정 단계에서 사용 가능하다는 것입니다.

과 상수는 동일합니다.상수는 설정 단계부터 사용할 수 있지만 값은 사용할 수 없습니다.

또 다른 차이점은 이름이 상수 값을 변경할 수 없다는 것입니다.처음 할당한 값은 유지되는 값입니다. 나중에 다른 값을 할당하려고 하면 무시됩니다.

다음은 예를 제시하겠습니다.

mod.value("myValue", "First Assignment");

mod.value("myValue", "Second  Assignment");

mod.constant("myConstant", "First Assignment");

mod.constant("myConstant", "Second Assignment");

mod.controller("MyController", function(myValue, myConstant) {

    console.log("myValue: " + myValue);

    console.log("myConstant: " + myConstant);
});

콘솔 출력:

myValue: Second Assignment

myConstant: First Assignment

그러나 개체를 상수로 사용하는 경우 해당 값은 언제 어디서나 재정의될 수 있습니다.예를들면

const version = '10.0'

변경할 수 없습니다.콘솔을 보면 값을 변경할 때 오류가 발생하기도 하지만

const config = {
    'version': '8.6'
}

는 단순한 값과 같이 동작하며 오브젝트 값은 언제든지 다음과 같이 변경할 수 있습니다.

config.version = 5

타다, 이제 당신의 버전은5에 대해서도 마찬가지입니다.app.const('constant', 'its me')

언급URL : https://stackoverflow.com/questions/30327651/angularjs-constants-vs-values