머리말
최근에 접촉 한 JavaScript 구문 설탕을 요약하고 공유해 봅시다.
각 사탕 조각에는 자세한 지침과 예제가 있으므로 많이 말하지 않을 것입니다.
정확한 유형 확인
코드 사본은 다음과 같습니다.
/*
* @기능:
* 확인 예제를 입력하십시오
*이 방법은 변수가 예상 데이터 유형인지 확인할 수 있습니다.
* @params :
* 확인 해야하는 OBJ 변수
* 구성 데이터 유형 Whitelist, 선택 사항, 모든 유형에 대한 기본값
* @반품:
* 참은 수표가 전달되고 False가 실패 함을 의미합니다
* @examples :
* typecheck ( "str"); // true를 반환합니다
* typeCheck ({}, { "[객체 배열]": 1}); // false를 반환합니다
*/
함수 typecheck (obj, config) {
var hasop = object.prototype.hasownproperty,
tostr = object.prototype.tostring,
_config = config || {
"[객체 개체]": 1,
"[객체 배열]": 1,
"[대상 Regex] : 1,
"[객체 문자열]": 1,
"[객체 번호]": 1,
"[대상 부울]": 1,
"[객체 함수]": 1,
"[객체 undefined] : 1,
"[객체 null] : 1
};
return hasop.call (_config, tostr.call (obj));
}
프로토 타입을 추가하는 우아한 방법
코드 사본은 다음과 같습니다.
/*
* @설명:
* 프로토 타입을 추가하는 우아한 방법
*이 코드 스 니펫을 공개 범위에서 실행하십시오.
*/
if (typeof function.prototype.method! == "function") {
function.prototype.method = function (name, fn) {
this.prototype [name] = fn;
이것을 반환하십시오;
};
}
/*
* 사용의 예
*/
// "테스트 클래스"정의
함수 testfn () {
}
// 테스트 클래스 멤버 메소드를 추가합니다
testfn.method ( "add", function (a, b) {
A + B를 반환합니다.
}). 메소드 ( "sub", function (a, b) {
반환 a -b;
});
// 인스턴스화
var testobj = new testfn ();
// 멤버 메소드를 호출합니다
testobj.add (1,5); // 반환 6
testobj.sub (7,2); // 반환 5
네임 스페이스를 신속하게 만듭니다
코드 사본은 다음과 같습니다.
/*
* @기능:
* 네임 스페이스를 만듭니다
* @params :
* 예 : nsRoot.Service.impl과 같은 Ex 네임 스페이스 표현식
*이 표현식은 루트 노드에서 시작해야합니다
* @반품:
* 표현식의 마지막 노드 인 객체를 반환합니다.
* @others :
* NSROOT라는 이름이 마음에 들지 않으면 교체품을 검색하십시오.
*/
var nsRoot = nsRoot || {};
nsRoot.namespace = function (ex) {
var _ex = ex || "",
nsarray = _ex.split ( "."),
parentnode = nsRoot,
_s = "",
i = 0;
// 네임 스페이스가 루트 노드에서 시작되는지 판단합니다
if (nsarray [0]! == "nsRoot") {
던지기 ( "네임 스페이스는 루트 노드에서 시작해야합니다!");
}
// 루트 노드를 제거합니다
nsarray = nsarray.slice (1);
for (i = 0; i <nsarray.length; i ++) {
_s = nsarray [i];
if (parentnode [_s] === 정의되지 않은) {
parentnode [_s] = {};
}
parentnode = parentnode [_s];
}
반환 부모 노드;
};
/*
* 사용의 예
*/
// 새 네임 스페이스를 만듭니다
var imp = nsRoot.NamesPace ( "nsRoot.Service.impl");
경고 (empr === nsRoot.Service.impl); // true를 반환합니다
// 원래 데이터를 덮어 쓰지 않고 기존 네임 스페이스를 만듭니다
nsRoot.NamesPace ( "nsRoot.Service.impl");
경고 (empr === nsRoot.Service.impl); // true를 반환합니다