>  기사  >  컴퓨터 튜토리얼  >  JavaScript는 클릭으로 호출할 수 있는 hide-like 메소드를 어떻게 정의합니까?

JavaScript는 클릭으로 호출할 수 있는 hide-like 메소드를 어떻게 정의합니까?

PHPz
PHPz앞으로
2024-01-13 12:12:05925검색

javascript는 hide에 의해 호출될 때와 유사한 클릭 메서드를 어떻게 정의합니까? 프로토타입 방법. . . . 프로토타입

예를 들어 Array

배열에 대한 함수를 정의해 보세요.

Array.prototype.in_array = 함수($string) { for (var i = 0; i {

for (i = 0; i 참을 반환합니다;

}

}

거짓 반환;

}

전화만 하시면 됩니다

var a = 새 배열('a');

a.in_array('a');

존재하는지 확인하세요

예: 문자열

String.prototype.trim = 함수()

{

return this.replace(/^s*|s*$/g, '');

}

전화만 하시면 됩니다

var a = 'abcdefg';

a.trime();

이렇게 하면 양쪽 공백이 제거됩니다

사용자 정의 함수도 마찬가지입니다. 먼저 함수를 만들고 프로토타입을 사용하여 함수를 추가하세요.

JavaScript에서 객체를 정의하는 방법은 무엇인가요

Javascript 객체를 정의하는 다양한 방법

1. 팩토리 메소드: 먼저 객체를 생성한 다음 객체에 메소드와 속성을 추가합니다. 클로저 후에는 new 연산자를 사용하여 객체를 생성하지 마세요. 이 접근 방식에는 팩토리 함수 내에서 메서드를 정의할 때와 같은 몇 가지 단점이 있지만 호출될 때마다 새 함수가 생성됩니다.

기능 팩토리(이름, 사람, 주소, 시간){

var tmp=새 개체;

tmp.name=이름;

tmp.person=사람;

tmp.address=주소;

tmp.workTime=function(){

alert("우리가 일을 시작하는 시간은" + 시간);

}

tmp 반환;

}

var Factory1 = Factory("마약", 100, "Huashan Rd", 10);

var Factory2 = Factory("TCMdrugs", 100, "hongqiao Rd", 11);

factory1.workTime();

factory2.workTime();//여기서 Factory1과 Factory2는 서로 다른 메소드를 가지고 있습니다

이 문제는 다음과 같은 방법으로 개선될 수 있지만 캡슐화가 부족합니다

기능 팩토리(이름, 사람, 주소, 시간){

var tmp=새 개체;

tmp.name=이름;

tmp.person=사람;

tmp.address=주소;

tmp.workTime=workTime();

tmp 반환;

}

workTime() 함수{

alert("우리가 일을 시작하는 시간은" + this.time);

}

2. 생성자 메서드는 생성자 내부에서 this 키워드를 사용하여 객체를 생성하는 것을 의미하며, 이를 사용할 때는 new 연산자를 통해 인스턴스화해야 합니다. 그러나 이 메소드 역시 팩토리 메소드와 동일한 문제점을 가지고 있는데, 생성자가 호출될 때마다 새로운 함수 객체가 생성되어 함수 생성이 반복된다는 점이다.

함수 구성(이름, 사람, 주소, 시간) { //여기에 코드 로직을 작성하세요. }

this.name=이름;

this.person=사람;

this.address=주소;

this.workTime=function(){

alert("우리가 일을 시작하는 시간은" + this.time);

};

}

3. 프로토타입 속성을 사용하여 속성과 메소드를 구현하면 인스턴스 오브를 통해 객체 유형을 확인할 수 있어 반복적으로 함수를 생성하는 문제를 해결할 수 있습니다. 그러나 매개변수를 전달하여 속성을 초기화할 수는 없다는 점에 유의해야 합니다.

기능 자동차(){

}

Car.prototype.color = "빨간색";

Car.prototype.doors = 4;

Car.prototype.mpg = 23;

Car.prototype.showColor = function() {

경고(this.color);

};

var car1 = 새 자동차();

var car2 = 새 자동차();

그런데 다음과 같은 상황이 발생하면 또 문제가 발생합니다

Car.prototype.drivers = ["mike", "sue"];

car1.drivers.push("매트");

alert(car1.drivers); //"mike,sue,matt" 출력

alert(car2.drivers); // "mike, sue, matt" 출력

drivers는 Array 객체에 대한 포인터이며 Car의 두 인스턴스는 모두 동일한 배열을 참조합니다.

4. 혼합 생성자/프로토타입 방법: 프로토타입 방법에 대한 솔루션

기능 자동차(sColor, iDoors, iMpg) { this.color = sColor; this.doors = iDoors; this.mpg = iMpg; }

this.color = sColor;

this.doors = iDoors;

this.mpg = iMpg;

this.drivers = ["마이크", "수"];

}

Car.prototype.showColor = 함수() { // 귀하의 코드 }

경고(this.color);

};

var car1 = new Car("빨간색", 4, 23);

var car2 = new Car("파란색", 3, 25);

car1.drivers.push("매트");

경고(car1.drivers);

경고(car2.drivers);

5. 동적 프로토타입 방법: 이는 이전 방법에서 발생하는 문제를 피하고 보다 친숙한 코딩 스타일을 제공하는 매우 권장되는 방법입니다.

기능 자동차(sColor, iDoors, iMpg) { this.color = sColor; this.doors = iDoors; this.mpg = iMpg; }

this.color = sColor;

this.doors = iDoors;

this.mpg = iMpg;

this.drivers = ["마이크", "수"];

if(Car.initialized 유형 == "정의되지 않음"){

Car.prototype.showColor = 함수() { // 귀하의 코드 }

경고(this.color);

};

Car.initialized = true;

}

}

var car1 = new Car("빨간색", 4, 23);

var car2 = new Car("파란색", 3, 25);

car1.drivers.push("매트");

경고(car1.drivers);

경고(car2.drivers);

6. 혼합 팩토리 방식: 팩토리 방식과 다소 유사하지만 인스턴스화에 new 키워드를 사용합니다. 팩토리 방식과 동일한 단점이 있지만 권장되지는 않습니다.

위 내용은 JavaScript는 클릭으로 호출할 수 있는 hide-like 메소드를 어떻게 정의합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 docexcel.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제