Javascript詳細散記

6613 ワード

1.閉じた括弧の前に句読点を多く入れない

  
  
  
  
  1. var sofish = {  
  2.     name:' ',  
  3.     pos:'web developer',  
  4.     age:'24' //  ,ie ,  
  5. }  
 
2.3つの要素しかないと判断したら、このような定法を使うことができます.

  
  
  
  
  1. //   
  2. var sofish; 
  3. if(age > 23){ 
  4.     alert('yes'
  5. else { 
  6.     alert('no'
今はこのように書いてもいいです.

  
  
  
  
  1. var sofish = age > 23 ? alert("yes") : alert("no")
3.イベントに関数を登録するときは「()」を追加しないでください.

  
  
  
  
  1. function doSomething(){ 
  2.      var name = sofish, age = 24; 
  3.      function getName(){...}; 
  4.      function getAge(){...}; 
  5.      return
  6.          name:getName, // Note 
  7.          age:getAge // Note 
  8.      } 
  9. element.onclick = doSomething; // but not doSomething() 
4.onclickを登録する時、重載に注意する
Oclickイベントは一つのfunctionしか登録できません.次のようなコードで、一つ目は二つ目の重さになります.

  
  
  
  
  1. //   
  2. element.onclick = startDragDrop; 
  3. element.onclick = spyOnUser; 
融通をきかせて、このように書くことができます.

  
  
  
  
  1. element.onclick = function () {startDragDrop(); spyOnUser()} 
しかし、このようにすれば、二つの関数はもう一つ登録されているかもしれません.これはまた間違えます.私たちは先に判定してもいいです.

  
  
  
  
  1. var old = (element.onclick) ? element.onclick : function () {}; 
  2. element.onclick = function () { 
  3.     old();  
  4.     spyOnUser() 
  5. }; 
はい、未登録のものは登録されますが、登録されているものはそのままold()を実行します.しかし、このように、もしthisを使う必要があるならば、指すのは少し混乱しました.Ethanさんのメッセージの中の提案は以下の通りです.

  
  
  
  
  1. var old = (element.onclick) ? element.onclick : function () {};  
  2. element.onclick = function () {  
  3.     old.call(this);   
  4.     spyOnUser.call(this)  
  5. };  
Notice:ゆっくり勉強していくうちに、ゆっくりとメモしていきます.-、…勉強します.