본문 바로가기
Development (국비 복습 )/JavaScript

this키워드와 slice()

by Puddingforever 2023. 2. 7.
<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Objects</h2>
<p>An object method is a function definition, stored as a property value.</p>

<p id="demo"></p>

<script>
// 객체
const person = {
	firstName:"John",
    lastName:"Doe",
    fullName:function(){
    	return this.firstName + " " + this.lastName;
    }
};
// 객체 데이터 보여주기 
document.getElementById("demo").innerHTML = person.fullName();
</script>

</body>
</html>

 

this는 객체의 주인을 가리킨다.

위의 코드에서 fullName이라는 프로퍼티의 함수를 보면 this를 쓴 것을 알수 있는데, 여기서 this는 객체 주인을 가리킨다 즉, person이라는 객체를 가리킨다.

fullName:function(){ return this.firstName+ " " + this.lastName; }

 

근데 , this 함수가 return과 같이 쓰인다면 그 객체가 아니라 return 함수에 들어있는 객체를 신경써야 한다.

다음의 경우 this.name이 undefined로 나왔는데, return 함수에 객체가 하나도 없기 떄문이다

function personFactory(name){
    return {
        
        talk(){
            return `${this.name} is cute!`;
        }
    }
}


const pudding = personFactory("pudding");
document.write(pudding.talk());

만약 아래처럼 return 함수에 객체를 써줬다면 this.name이 pudding으로 잘 나온다. 

function personFactory(name){
    return {
        name,
        talk(){
            return `${this.name} is cute!`;
        }
    }
}


const pudding = personFactory("pudding");
document.write(pudding.talk());

 

 

 

<script>
let text = "Apple, Banana, Kiwi";
let part = text.slice(7,13);//앞은 포함,뒤는 x
document.getElementById("demo").innerHTML = part; 
</script>

banana 

<p>Extract a part of a string from position 7:</p>
<p id="demo"></p>

<script>
let text = "Apple, Banana, Kiwi";
let part = text.slice(7); // 7에서 시작한 B부터 프린트한다.
document.getElementById('demo').innerHTML=part;
</script>

Banana, Kiwi

 

<script>
let text = "Apple, Banana, Kiwi";
let part = text.slice(-12); // 파라메터가 -인 경우 뒤에서 부터 프린트한다.
document.getElementById("demo").innerHTML = part;
</script>

Banana, Kiwi //12번째는 포함하지 않음 

 

<script>
let text = "Apple, Banana, Kiwi";
let part = text.slice(-12,-6); 
//뒤에서부터 12번째(12번째는 포함X),뒤에서 6번째 (6번째는 포함 X) 빼주기
document.getElementById("demo").innerHTML = part;
</script>

Banana

 

 

-로 된거랑 (a,b)중 b는 그 숫자를 포함시키지 않는다 !

댓글