>웹 프론트엔드 >JS 튜토리얼 >javascript_javascript 스킬 중 가장 사악한 함수 예제 분석

javascript_javascript 스킬 중 가장 사악한 함수 예제 분석

WBOY
WBOY원래의
2016-05-16 18:06:161052검색

이것은 당신을 혼란스럽게 하는 JavaScript의 가장 독특한 기능입니다
일반적인 작업을 살펴보겠습니다

코드 복사 Code As 다음과 같습니다:

function doit(){
.....
}
doit()

자바스크립트에서 함수를 사용할 수 있습니다. 메소드로 사용하세요
코드 복사 코드는 다음과 같습니다.

 var obj=new Object( 즉, Function 형의 인스턴스)




코드 복사


코드는 다음과 같습니다.  var result = new Function("num1", "num2", "return num1 num2" );
위의 실행 효과는 동일하며 함수 결과도 이렇게 작성할 수 있습니다(예: 함수 표현식)



코드 복사


코드는 다음과 같습니다.
var result=function(num1,num2){ return num1 num2; 유일한 차이점은 다음과 같습니다. 이 두 가지 작성 방법은 함수가 먼저 실행되는 반면, 함수 표현식은 코드가 실행될 때까지 수식은 실행되지 않습니다. 또한 각 함수에는 함수 실행 동적 매개 변수 내부에 배열과 같은 인수 개체
가 있습니다. ,




코드 복사


코드는 다음과 같습니다.
인수는 동적으로 매개변수를 전달하는 데 자주 사용됩니다.
함수는 객체이기 때문에 특정 속성도 있어야 합니다




코드 복사


코드는 다음과 같습니다.
함수 사람( ){ .... } person.name="xxxx"; person.say=function(){ alert(this.name)
}
person.say(); //alert("xxxx")


저희도 클래스라고 생각하시면 되고, 함수 본문은 생성자




코드 복사

코드는 다음과 같습니다.
function Person(nm){ this.name=nm ; this.say=function(){ alert(nm); alert(this.name) }
}
var p1=new Person("ygm1" );
p1.say(); //경고 ygm1 ygm1
var p2=new Person("ygm2")
p2.say();
여기에서는 this.name이 사용됩니다. 이는 현재 개체를 나타내기 때문입니다. 경고(이름)가 창 개체의 속성을 직접 검색하는 경우 동시에 매개변수 nm을 사용할 수 있습니다. 실제로 이것은 범위 체인을 포함합니다. 각 함수 본문은 범위입니다. 하위 도메인은 상위 도메인의 속성에 액세스할 수 있지만 그 반대의 경우도 가능합니다. 마무리, 약간의 지식, 자세한 설명은 없습니다..)
다른 OO 언어와 비교하여 각 클래스는 몇 가지 정적 속성이나 메서드를 가질 수 있으며 JavaScript는 프로토타입을 통해 시뮬레이션되어 각 개체의 속성 공유를 달성합니다.




코드 복사

코드는


function Person(num) {
.. .. } Person.prototype.name = "ygm"; alert(new Person().name) 그러나 OO 언어의 정적 메소드는 클래스에 의해 호출되며 자체적으로 인스턴스화할 수 없습니다. JavaScript에서는 그 특수성으로 인해 정반대입니다.
여기서 AlertPerson의 이름 속성에 주의하세요. 발견되면 프로토타입에 이름을 마스킹하고 그 값을 직접 반환합니다
사실 함수가 생성될 때마다 프로토타입 객체도 생성되는데, 프로토타입 객체는 이를 참조합니다. 객체에 대한 객체이므로 객체는 모든 객체의 기본 클래스입니다.
프로토타입 객체를 재정의할 수 있습니다.
Person.prototype=new ParentPerson()
Person의 프로토타입 객체는 ParentPerson 객체를 가리키고 ParentPerson 객체는 가리킵니다. 자신의 프로토타입 객체에... 프로토타입 체인을 형성합니다...
알겠습니다 오늘은 여기까지입니다...
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.