역동적 인 언어로서, JavaScript의 객체 j는 구문에서 상당한 자유 수준을 가지므로 기능과 N 쓰기 스타일을 만듭니다.
JS에는 일반적으로 OOP를 구현하는 두 가지 방법이 있습니다.
첫 번째 :이 키워드를 사용하십시오
functionclass1 ()
{
this.onclick = function (e)
{
for (vari = 0; i <1000; i ++)
{
vara = newDate ();
}
}
}
이것을 사용합니다. 방법은 객체를 유연하게 객체에 추가 할 수 있으며 대부분의 OOP 언어와 유사하며 작동 중에 추가 할 수도 있습니다.
두 번째 유형 : 프로토 타입 키워드를 사용하십시오
functionclickfunc (e)
{
for (vari = 0; i <1000; i ++)
{
vara = newDate ();
}
}
functionclass2 ()
{
}
class2.prototype.onclick = clickfunc;
사용 측면에서, 유연한 것처럼 보이는 첫 번째 것은 없습니다. 그러나 객체가 새로운 것이기 전에 언제든지 물체의 속성과 방법을 추가 할 수도 있습니다.
그러나 그들은 평등하지 않습니다. 비교적 말하면, 첫 번째 방법은 비교적 집중되어 있고 코드를 읽기 쉽기 때문에 첫 번째 방법을 선호합니다. 그러나 달리면 운영 효율성이 크게 다릅니다. 아래 테스트 코드를 살펴 보겠습니다.
vartotal = newArray ();
functiontest1 ()
{
vara = newDate ();
for (vari = 0; i <10000; i ++)
{
varc = newClass1 ();
//total.push(c);
}
varb = newDate ();
알림 (b.gettime () -A.GetTime ());
}
functiontest2 ()
{
vara = newDate ();
for (vari = 0; i <10000; i ++)
{
varc = newClass2 ();
//total.push(c);
}
varb = newDate ();
알림 (b.gettime () -A.GetTime ());
}
첫 번째 단계는 실행 시간을 테스트하는 것입니다. test1 ()는 142ms가 걸리는 반면 test2 ()는 50ms 만 필요합니다. 시간 효율성 측면에서 프로토 타입 방법은 이것보다 더 효율적입니다.