> 웹 프론트엔드 > JS 튜토리얼 > 누군가가 javascript_javascript 기술을 처음 배울 때 작성한 학습 노트

누군가가 javascript_javascript 기술을 처음 배울 때 작성한 학습 노트

WBOY
풀어 주다: 2016-05-16 18:12:46
원래의
840명이 탐색했습니다.
코드 복사 코드는 다음과 같습니다.

/*
* JavaScript 객체는 속성(메서드)의 모음입니다
* 이 언어에서는 변수 이름이나 메서드 이름이 선언 사양을 따르지 않으면
* 대괄호 "[]"를 사용해야 함 참고
*
*/
/**
* <1.>이 문은 class1 클래스를 선언합니다. class1은 생성자라고도 하는 생성 메서드와 동일합니다.
* class1 메서드를 선언한다고도 할 수 있습니다.
*/
function class1(){
this.name="xjl" ; //give 객체에 속성 추가
this.say= function(){alert("Hello everything!");} //객체에 메소드 추가
/**
* <2.> new 키워드를 사용하여 인스턴스를 만듭니다. new 연산자는 내부 클래스뿐만 아니라 사용자 정의 클래스에도 유효합니다.
* 각 객체는 여러 속성으로 간주될 수 있습니다. ( 메소드 모음), 즉 객체 이름입니다. 속성(메서드) 이름 또는 객체 이름 ["속성(메서드) 이름"]
* 대괄호 '[]'는 어느 것이 확실하지 않은 경우에 적합합니다. 참조할 속성(메서드)
*/
var a = new class1();
//alert(typeof(a)) //typeof(a)는
의 유형을 반환합니다//alert(a.name) ; //각 객체를 볼 수 있습니다. 작업은 여러 속성(메서드)의 모음입니다.
//alert(a['name']) //대괄호([])를 사용하여 속성과 메소드를 참조합니다. the object
//드롭다운 상자 개체 이름 [Drop-down box object.value] 사용자가 선택한 값을 가져올 수 있습니다. 또한 eval("드롭다운 상자 개체 이름." 드롭다운을 사용할 수도 있습니다. box object.value);
//a.say(); //객체의 메소드 호출
//var arr=new Array()
//arr['push']('abc '); //배열에 요소를 추가합니다. 여기서 push는 내장 속성입니다.
// arr['push']('1234'); //배열에 요소 추가
// Alert(arr);
/**
* <2.> 객체 속성 및 메소드를 동적으로 추가, 수정 및 삭제합니다.
*
*/
var obj = new Object()
//속성 추가...속성 이름은 임의적일 수 있습니다.
obj.name= "Xu Jianlong";
obj.sex = 'Male';
obj['my name'] = "xujianlong"; //식별자가 아닌 문자열을 속성 이름으로 사용하려면 대괄호 "[]"를 사용하세요. 🎜>//메서드 추가... 메소드 이름은 임의로 선택할 수도 있고, 매개변수를 전달할 수도 있습니다
obj.alert = function(a){
alert(a "Hello!")
}
//속성 값을 다른 것으로 변경하는 속성 수정
obj.name = "Zhang San "
obj['name'] = 'anme'; 🎜>//속성을 삭제한다는 것은 속성 값을 정의되지 않음 또는 null로 변경하는 것을 의미합니다.
obj.name = 'undefine'
/* *
* <三> 중괄호({}) 구문을 사용하여 유형이 지정되지 않은 객체 생성
*/
//속성과 메서드를 중괄호로 묶습니다. , 속성을 쉼표로 구분하고 속성 값을 콜론으로 구분합니다
var ob = {
name: "123 ",
say:function(){alert("123")} //The 마지막 속성이나 메소드에는 쉼표가 필요하지 않습니다
}
//다음 메소드를 사용하여 객체의 속성과 메소드를 정의할 수도 있습니다
var ob1 = {"name":'123',' say':function(){alert("abcd");}};
/**
*프로토타입 프로토타입 객체
* 모든 함수에 해당하는 클래스는 (Function)
* 프로토타입은 실제로 클래스 멤버의 컬렉션을 나타냅니다.
* *new를 통해 클래스의 객체를 얻을 때 프로토타입 객체의 멤버는 인스턴스화된 객체의 멤버가 됩니다.
*/
function class2(){ //객체 생성
}
var ob2 = new class2()
class2.prototype.me = function(){alert("123 ");} //프로토타입 앞에는 생성한 클래스 이름이 있습니다.
class2.prototype.name = "123"; //
/**
* 함수 객체와 기타 내부 객체의 관계
*/
//typeof (new Function()),typeof(Function),typeof(Array),typeof(Object)는 "function"이라는 문자열을 반환합니다. 이러한 매개 변수를 생성자
//typeof(new Date()), typeof(new Array()라고 합니다. ), typeof(new Object())는 문자열 "object"를 반환합니다.
/**
* 함수에 전달되는 암시적 매개변수: 인수. 배열의 특성을 가지지만 배열이 아니며 아래 첨자로 접근할 수 있습니다.
*/
//arguments에는 다음과 같이 함수 객체 자체에 대한 참조를 나타내는 매개변수 피호출자가 포함되어 있습니다.
var sum=function(n){
if(1==n)
return 1;
else
return n 인수.callee(n-1)
}
//이 문은 다음과 같이 네임스페이스1의 네임스페이스를 선언한다는 의미입니다.
varnamespace1 = new Object()
namespace1.class1 = function(){alert("123");}; var obj1=new 네임스페이스1.class1(); //페이지 로드 시 실행
/**
* 프로토타입 객체를 사용하여 클래스 멤버 정의
*/
//생성하는 문 다음에 클래스를 정의하려면 함수의 프로토타입 속성을 사용하세요. 인스턴스 New 멤버는 나중에 생성된 객체에만 유효합니다
//프로토타입의 constructor() 메서드는 생성자 메서드와 동일합니다
function class1(){
//alert('adf');
}
//class1.prototype.constructor(); //페이지가 로드될 때 실행
//프로토타입으로 정의된 단순화
class1.prototype={
//일부 넣기 속성 또는 메소드
//여러 속성 또는 메소드는 쉼표(,)로 구분됩니다.
}
//다음 코드는 정적 메소드 및 속성입니다
class1.name="abc"
class1.say = function(){/*codes*/}
//반사 메커니즘을 사용하면 요소에 지정된 스타일을 변경할 수 있지만 다른 스타일은 변경되지 않으며 원하는 결과를 얻을 수 있습니다. 예:
function setStyle(_style){
//스타일을 변경하기 위한 인터페이스 객체 가져오기
var element=getElement()
for(var p in _style){
element.style[ p]=_style [p];
}
}
//한 클래스의 프로토타입을 다른 클래스에 복사하여 상속을 얻을 수 있지만 여기에는 결함이 있습니다. 예:
// function class4(){}
//
// function class2(){
//
//
// class2.prototype=class4. 프로토타입 ; //구현의 상속
// class2.prototype.f = function(){alert("a");}
//
//class2의 프로토타입이 변경되면 class4의 프로토타입도 그에 따라 변경됩니다.
// 객체가 특정 클래스의 인스턴스인지 확인하기 위해 연산자:
var a = new class2()
a instanceof class2; ,
//더 나은 상속
for(var p in class1.prototype){
class2.prototype[p]=class1.prototype [p]의 class2에 상속된 클래스가 있는 경우에도 마찬가지입니다. ;
}
class2.prototype.ma=function(){
alert(123);
}
//class2의 프로토타입이 변경되면 class4의 프로토타입은 변경되지 않습니다.
/**
* 프로토타입-1.3.1 프레임워크의 클래스 상속 구현 메커니즘
*/
//----------------------------------- ------------------------------------- ----------
//각 객체에 확장 메소드를 추가하는 구문입니다.
Object.extend = function(destination, source) {
for ( 소스의 속성) {
destination[property] = source[property]; //소스의 모든 속성 또는 메서드를 대상에 할당
}
반환 대상
}
// Object 클래스를 통해 각 객체에 대한 확장 메서드
Object.prototype.extend = function(object) {
return Object.extend.apply(this, [this, object])
}
Object .extend.apply(this,[this,object]);
//class1은 class2에서 상속됩니다. 장점은 new class2()를 사용하는 것이 class2의 프로토타입 복사본을 class1에 할당하는 것과 동일하다는 것입니다.
/ /in class1 프로토타입에 대한 변경 사항은 class2의 프로토타입에 영향을 주지 않습니다.
class1.prototype=(new class2()).extend({/*class1에 추가할 속성 또는 메서드*/}); /**
* 선언만 하고 구현하지 않는 메소드입니다. 가상 함수가 있는 클래스를 추상 클래스라고 합니다.
*/
//가상 메소드는 선언 없이 바로 사용됩니다. 이러한 메서드는 파생 클래스에서 구현됩니다. 예:
function c1(){}
c2.prototype={
fun:function(){ this.fn();}//fn 메서드 거기서 정의되지 않음
}
function c2(){}
c1.prototype=(new c2()).extend({
fn:function(){var x = 1;}
});
//this.initialize.apply(this, 인수); 이 명령문은 객체 생성 시 매개변수를 초기화 메소드에 전달하는 것입니다
/***
* 자바스크립트에서는 try-catch-finally 문을 사용하여 예외나 오류 메시지를 캡처할 수도 있습니다.
* 그 중 catch(e)의 괄호 안의 e는 e라는 이름의 객체입니다. error.Object
* e=new Error(message) 이 객체를 생성하려면 예외에 대한 설명이 오류 객체
의 속성 메시지로 사용됩니다.*/
// 이 코드는 예외 발생을 보여줍니다
function s(a,b){
try{
if(b==0)
throw new Error("제수는 0이 될 수 없습니다! ... .. ...");
else
alert(a/b)
}catch(e){
document.write(e.message);///실제 값 가져오기 메시지 참조를 통한 오류
}
}
onlaod=s(1,0)

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿