JSの高度な機能

1.データの種類を決定し、私たちが最も頻繁にデータの種類を決定するためにtypeofを使用し、これらは、リターンオブジェクトですが、Object.prototype.toString()ので、欠点は、よく判断ヌル、配列、定期的、機能ではありません。コール(値)は、この問題を解決し

  

VAR配列= [1,2,3]、
    nullobj =ヌル、
    FN =関数(){アラート(1)}、
    REG = / ^ [1-4] $ /。
console.log(Object.prototype.toString.call(配列))// '[オブジェクト配列]' 
はconsole.log(Object.prototype.toString.call(nullobj))// '[オブジェクトヌル]' 
はconsole.log( Object.prototype.toString.call(FN))// '[オブジェクト機能]' 
はconsole.log(Object.prototype.toString.call(REG))// '[オブジェクトの正規表現]'

  

2.バインド機能

例2.1:

document.getElementById BTNは、VAR( 'BTN')= 
VAR = {ハンドラ
    : '赤'、色
    関数(){:handleClick 
     	にconsole.log(this.color)
   } 
} 
実行されたとき、btn.onclick = handler.handleclick //未定義これは、DOMボタンを指し、

上記の実施例2.1では、これはこの点ハンドラ、利用可能なクロージャ溶液、2.2以下の実施例を、DOMボタンを指します。

2.2例:

VaRのBTN =のdocument.getElementById( 'BTN')
VARハンドラ= { 
    色: '赤'、
    handleclick:関数(){ 
     	にconsole.log(this.color)
   } 
} 
btn.onclick =関数(){ 
     handler.handleclick() //赤、执行时、この指的に是ハンドラ
}

 

また、また、書き込み機能を結合し、機能が環境にバインドすることができ、以下の例2.3

2.3例:

document.getElementById BTNは( 'BTN')VARを= 
VAR = {ハンドラ
     : '赤'、色
     関数(EV){:handleClick 
     	にconsole.log(ev.type)
     	にconsole.log(this.color)
     } 
} 
     		
(バインド関数fnを、コンテキスト){ 
     return関数(){ 
     	fn.apply返す(文脈、引数)//注意引数は組み込み関数の引数を参照すること、を結合しない
    } 
} 

btn.onclick =バインド(handler.handleclick、ハンドラ)/ /クリックして、赤の出力    

上記と同様のネイティブbindメソッドは、我々はこのようなオブジェクトを渡す必要があります 

  

  

おすすめ

転載: www.cnblogs.com/hesj/p/11262581.html