패키지 함수 와 호출
8363 단어 js
class
-
-
-
-
-
-
// indexOf
function indexOf(arr,value,start){
// start, start 0
if(arguments.length == 2){
start = 0;
}
// indexOf , indexOf
if(arr.indexOf){
return arr.indexOf(value,start);
}
for( var i = 0; i < arr.length; i++){
if(arr[i] === value){
return i;
}
}
return -1;
}
//
function noRepeat(arr){
var result = [];
for( var i = 0; i < arr.length; i++){
if(indexOf(result,arr[i]) == -1){
result.push(arr[i]);
}
}
return result;
}
//inArray
function inArray(arr,value){
for(var i = 0; i < arr.length; i++){
if(arr[i] === value){
return true;
}
}
return false;
}
//
function trim(arr){
var result = arr.replace(/^\s+|\s+$/g,'');
return result;
}
//getElementsByClassName
function getElementsByClassName(parentObj,classStr){
var result = [];
var objs = parentObj.getElementsByTagName('*');
// classStr , class
var targetArr1 = noRepeat(trim(classStr).split(/\s+/));
// classStr , class
var targetArr2 = noRepeat(trim(classStr).split(/\s*,\s*/));
if(classStr.indexOf(',') == -1 ){
// class
label: for(var i = 0; i < objs.length; i++){
var arr = noRepeat(trim(objs[i].className).split(/\s+/));
for( var j = 0; j < targetArr1.length; j++){
if(!inArray(arr,targetArr1[j])){
continue label;
}
}
result.push(objs[i]);
}
return result;
}else{
//
label: for(var i = 0; i < objs.length; i++){
var arr = noRepeat(trim(objs[i].className).split(/\s+/));
for( var j = 0; j < targetArr2.length; j++){
if(inArray(arr,targetArr2[j])){
result.push(objs[i]);
continue label;
}
}
}
return result;
}
}
//addclass
function addClass(obj,classStr){
var array = noRepeat(trim(obj.className).split('\s+'));
if(!inArray(array,classStr)){
array.push(classStr);
}
obj.className = array.join(' ');
return obj;
}
//removeclass
function removeClass(obj,classStr){
var array = noRepeat(trim(obj.className).split('\s+'));
var index = indexOf(array,classStr);
if(index != -1){
classStr.splice(index,1);
obj.className = classStr.join(' ');
}
return obj;
}
//toggleClass
function toggleClass(obj,classStr){
var array = noRepeat(trim(obj.className).split('\s+'));
if(inArray(array,classStr)){
removeClass(obj,classStr);
}else{
addClass(obj,classStr);
}
}
js 함수 호출 의 네 가지 방법
js 의 함수 호출 은 두 개의 인 자 를 무료 로 보 냅 니 다. 바로 this 와 arguments 입 니 다.arguments 는 매개 변수 그룹 입 니 다. 그 는 실제 배열 이 아니 지만. length 방법 으로 길 이 를 얻 을 수 있 습 니 다.
책 에 4 중 호출 방식 이 있다.
방법 호출 모드 함수 호출 모드 구조 기 호출 모드 apply 호출 모드 다음은 실례 를 좀 살 펴 보 자.
1: 방법 호출 모드.
this 가 my object 를 가리 키 는 것 을 주의 하 십시오.
/* */
var myobject={
value:0,
inc:function(){
alert(this.value)
}
}
myobject.inc()
2: 함수 호출 모드
이 때 가 window 를 가리 키 는 것 을 주의 하 십시오.
/* */
var add=function(a,b){
alert(this)//this window
return a+b;
}
var sum=add(3,4);
alert(sum)
3: 구조 기 호출 모드
javascript 언어 정수 라 는 책 은 이 방식 을 버 리 는 것 을 권장 합 니 다.더 좋 은 방법 이 있 으 니까.여기 소개 안 할 게 요.다음 에 박문 발표 할 때 붙 여.
여기에 연결 을 추가 할 겁 니 다.
/* */
var quo=function(string){
this.status=string;
}
quo.prototype.get_status=function(){
return this.status;
}
var qq=new quo("aaa");
alert(qq.get_status());
4: apply 호출 모드
= = 더 유용 한 apply 인 스 턴 스 를 볼 수 있 습 니 다.맨 아래 코드 봐.
/*apply*/
// sum
// myobject
// this 。
//apply this
var arr=[10,20];
var sum=add.apply(myobject,arr);
alert(sum);
이거 봐.bind 이것 은 바 인 딩 시간의 함수 입 니 다.
var bind=function(object,type,fn){
if(object.attachEvent){//IE
object.attachEvent("on"+type,(function(){
return function(event){
window.event.cancelBubble=true;//
object.attachEvent=[fn.apply(object)];//----
// IE attachEvent 。
//this object 。 function this.id 。
// fn.apply(object)
// apply this object this.id
//object.id 。
}
})(object),false);
}else if(object.addEventListener){//
object.addEventListener(type,function(event){
event.stopPropagation();//
fn.apply(this)
});
}
}
bind(document.getElementById("aaa"),"click",function(){alert(this.id)});
내 가 좋아 하 는
<style>
body{
margin: 0;
}
.box{
width: 400px;
height: 200px;
margin: 200px auto;
}
li{
float: left;
margin-left: 10px;
height: 20px;
width: 50px;
background: green;
list-style: none;
}
</style>
<botton id="aa"> </botton>
<div class="box" id="box">
<ul class="list">
<li>11</li>
<li>22</li>
<li33>
<li>44</li>
<li>55</li>
<li>66</li>
</li33></ul>
</div>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.0.min.js"/>
<script>
var myOpinion = myOpinion || {};
myOpinion.prototype={
init:function(obj,i){
alert(obj+'hello');
},
closeWindow:function(obj,d){
obj.click(function(){
d.hide();
});
}
}
$(function(){
var my = myOpinion.prototype;
my.init($("#box"),$(".list"));
my.closeWindow($("#aa"),$(".list li"));
});
</script>
</code></pre>
<p><br/></p>
<p><span style="font-size:14px;"><br/></span></p>
<p><span style="font-size:14px;"> :<em><span style="color:#999999;">http://blog.csdn.net/xi_2130/article/details/50276025#comments</span></em></span></p>
<p><br/></p>
<p><br/></p>
<br/>
</div>
</div>
</div>
</div>
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[2022.04.19] 자바스크립트 this - 생성자 함수와 이벤트리스너에서의 this18일에 this에 대해 공부하면서 적었던 일반적인 함수나 객체에서의 this가 아닌 오늘은 이벤트리스너와 생성자 함수 안에서의 this를 살펴보기로 했다. new 키워드를 붙여 함수를 생성자로 사용할 때 this는...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.