각 함수 객체에는 길이 속성이 있으며 함수가 수신 할 것으로 예상되는 매개 변수 수를 나타냅니다.
코드 사본은 다음과 같습니다.
<html>
<헤드>
<script type = "text/javaScript">
var add = function (num1, num2, num3) {
경고 (num1+num2+num3);
}
경고 (add.length);
</스크립트>
</head>
<body>
</body>
</html>
객체 지향 JS의 생성에 대해
목표:
주문 객체를 작성하십시오.
날짜, 금액, 제출자의 세 가지 속성이 포함되어 있습니다
메소드 포함 : 디스플레이 문자열 : "xx는 다음과 같은 할당량으로 주문을 제출했습니다. xxxx yuan in xxx-xx-xx"
하나의 공장 방법
코드 사본은 다음과 같습니다.
<스크립트 유형 = 텍스트/JavaScript>
/*
공장 방법 : 메서드를 사용하여 객체를 반환하면 사용할 때 새 개체를 통해 새 객체를 생성 할 필요가 없습니다.
*/
함수 createOrder () // 전달 된 매개 변수를 기반으로 객체 데이터를 초기화하기 위해 매개 변수가있는 공장 메소드를 빌드 할 수도 있습니다.
{
var order = new Object ();
order.date = "1990-1-1";
order.price = "3200";
Order.name = "Vince Keny";
order.show = function () // 공장에 쇼 메소드를 배치하면 각 인스턴스에 대한 쇼 메소드를 개별적으로 만듭니다. 자원을 낭비하는 것이이 패턴의 단점입니다.
{
ALERT (this.name + "in" + this.Date + "주문" + this.price + "rmb.").
}
반환 명령;
}
// 공장 모드를 사용하여 객체를 반환합니다.
var order = createOrder ();
// 공장 패턴을 "의사-건설자"로 변환하여 이런 식으로 사용할 수 있습니다. 공장에서 새로운 것이 사용되기 때문에 객체를 만들 때 새 연산자는 무시됩니다.
var order2 = new createOrder ();
order.show ();
order2.show ();
</스크립트>
두 가지 생성자 방법
코드 사본은 다음과 같습니다.
/*
생성자 방법 및 방법 선언은 공장 방법과 동일하며 동일한 문제가 있으며 추출 할 수 있습니다. 차이점은 이것이 속성을 선언하는 데 사용된다는 것입니다.
인스턴스를 생성하려면 새 연산자를 사용해야합니다.
*/
함수 순서 ()
{
this.date = "1990-1-1";
this.price = "3200";
this.name = "Vince Keny";
this.show = function ()
{
ALERT (this.name + "in" + this.Date + "주문" + this.price + "rmb.").
}
}
var order = new Order ();
order.show ();
세 가지 프로토 타입 방법
코드 사본은 다음과 같습니다.
/*
프로토 타입 방법 : 프로토 타입을 사용하십시오
*/
함수 순서 ()
{}
order.prototype.date = "1990-1-1";
order.prototype.price = "3200";
order.prototype.name = "Vince Keny";
order.prototype.show = function ()
{
ALERT (this.name + "in" + this.Date + "주문" + this.price + "rmb.").
}
var order = new Order ();
order.show ();
4 개의 하이브리드 생성자/프로토 타입 방법
코드 사본은 다음과 같습니다.
/*
하이브리드 생성자/프로토 타입 방법 : 생성자 방법을 사용하여 속성 필드 초기화 및 프로토 타입 방법을 사용하여 방법을 구성합니다.
*/
함수 순서 ()
{
this.date = "1990-1-1";
this.price = "3200";
this.name = "Vince Keny";
}
order.prototype.show = function ().
{
ALERT (this.name + "in" + this.Date + "주문" + this.price + "rmb.").
}
var order = new Order ();
order.show ();
5 가지 동적 하이브리드 방법
코드 사본은 다음과 같습니다.
/*
동적 혼합 방법 : 혼합 방법의 차이는 방법을 선언하는 위치에 있습니다. 방법의 수명을 생성자 안에 넣는 것은 객체 지향과 더 일치합니다.
*/
함수 순서 ()
{
this.date = "1990-1-1";
this.price = "3200";
this.name = "Vince Keny";
if (typeof order._initialized == "undefined")
{
order.prototype.show = function ().
{
ALERT (this.name + "in" + this.Date + "주문" + this.price + "rmb.").
};
order._initialized = true;
}
}
기능 차량 (Scolor, Idoors) {
var otempcar = 새로운 객체;
otempcar.color = Scolor;
otempcar.doors = idooes;
otempcar.showcolor = function () {
경고 (this.color)
};
OTEMPCAR을 반환합니다.
}
var ocar1 = 새 차 ( "빨간색", 4);
var ocar2 = 새 차 ( "파란색", 3);
Ocar1.showColor (); // "빨간색"출력
OCAR2.ShowColor (); // "파란색"출력