Javascript詳細散記
6613 ワード
1.閉じた括弧の前に句読点を多く入れない
2.3つの要素しかないと判断したら、このような定法を使うことができます.
Oclickイベントは一つのfunctionしか登録できません.次のようなコードで、一つ目は二つ目の重さになります.
- var sofish = {
- name:' ',
- pos:'web developer',
- age:'24' // ,ie ,
- }
2.3つの要素しかないと判断したら、このような定法を使うことができます.
- //
- var sofish;
- if(age > 23){
- alert('yes')
- } else {
- alert('no')
- }
今はこのように書いてもいいです.
- var sofish = age > 23 ? alert("yes") : alert("no");
3.イベントに関数を登録するときは「()」を追加しないでください.
- function doSomething(){
- var name = sofish, age = 24;
- function getName(){...};
- function getAge(){...};
- return{
- name:getName, // Note
- age:getAge // Note
- }
- }
- element.onclick = doSomething; // but not doSomething()
4.onclickを登録する時、重載に注意するOclickイベントは一つのfunctionしか登録できません.次のようなコードで、一つ目は二つ目の重さになります.
- //
- element.onclick = startDragDrop;
- element.onclick = spyOnUser;
融通をきかせて、このように書くことができます.
- element.onclick = function () {startDragDrop(); spyOnUser()}
しかし、このようにすれば、二つの関数はもう一つ登録されているかもしれません.これはまた間違えます.私たちは先に判定してもいいです.
- var old = (element.onclick) ? element.onclick : function () {};
- element.onclick = function () {
- old();
- spyOnUser()
- };
はい、未登録のものは登録されますが、登録されているものはそのままold()を実行します.しかし、このように、もしthisを使う必要があるならば、指すのは少し混乱しました.Ethanさんのメッセージの中の提案は以下の通りです.
- var old = (element.onclick) ? element.onclick : function () {};
- element.onclick = function () {
- old.call(this);
- spyOnUser.call(this)
- };
Notice:ゆっくり勉強していくうちに、ゆっくりとメモしていきます.-、…勉強します.