Javascript 個人筆記(沒有整理,很亂)
更新時間:2007年07月07日 00:00:00 作者:
==============關(guān)于元素的顯示和隱藏=============
Visibility快于Display
讓圖畫時隱時現(xiàn)會創(chuàng)造很有趣的效果,有2種方法可以實(shí)現(xiàn)這個目的:使用CSS的visibility屬性或者
display屬性。對于絕對位置元素,diaplay和visibility具有同樣的效果。兩者的區(qū)別在于:設(shè)置為
display:none的元素將不再占用文檔流的空間,而設(shè)置為visibility:hidden的元素仍然保留原位置。
==============一點(diǎn)經(jīng)驗(yàn)=======================
1、JS變量沒有塊作用域,在判斷循環(huán)中的定義在整個函數(shù)內(nèi)都有定義
2、split()的參數(shù)是一個正則字符串,因此如果用鄭澤表達(dá)式特殊字符作為參數(shù)時一定要轉(zhuǎn)義
=============隱去瀏覽器中當(dāng)鼠標(biāo)移到圖片上跳出的工具欄=============
<img galleryimg="no">
或者
<head>
<meta http-equiv="imagetoolbar" content="no">
</head>
=============一些技巧==================
1、#連接不會回到頂部
<a href="#" ōnClick="return false">
---------------
2、關(guān)閉不提示
opener=null;
window.close();
============js面向?qū)ο缶幊痰囊恍┛偨Y(jié)=============
1、靜態(tài)屬性類實(shí)例訪問不到,同樣實(shí)例屬性只能實(shí)例訪問
var myfun=function(){this.a="a"};
myfun.b="b";
alert(new myfun().a);//輸出a
alert(myfun.a);//輸出undefined
alert(myfun.b);//輸出b
alert(new myfun().b);//輸出undefined
2、給prototype添加屬性
添加給prototype的屬性將會成為使用這個構(gòu)造函數(shù)創(chuàng)建的對象的通用屬性。
function Fish(name, color)
{
this.name=name;
this.color=color;
}
Fish.prototype.livesIn="water";
Fish.prototype.price=20;
正如上面的例子所示,每條實(shí)例魚可以有不同的名字和顏色,但是他們有一個共同的屬性,那就是都生活在水里。
這時因?yàn)楫?dāng)一個對象被創(chuàng)建時,這個構(gòu)造函數(shù)將會把它的屬性prototype賦給新對象的內(nèi)部屬性__proto__。這個__proto__被這個對象用來查找它的屬性。
3、用prototype給對象添加函數(shù)
通過prototype來給所有對象添加共用的函數(shù)。這有一個好處:你不需要每次在構(gòu)造一個對象的時候創(chuàng)建并初始化這個函數(shù)。
4、每個函數(shù)都有一個靜態(tài)name屬性(同樣,每個內(nèi)置類都有一個靜態(tài)name屬性),這個屬性不能也不會被覆蓋
function a()={};
var b=new Function();
alert(b.name);//輸出anonymous
alert(a.name);//輸出a
alert(Array.name);//輸出Array
==================關(guān)于this==================
之所以說一下this,是因?yàn)樗⒉煌耆韧贑++或者Java里面的this變量。
this在js中表示緊貼著調(diào)用地點(diǎn)的,非prototype擴(kuò)展的方法。
比如上面提到的
MyObj.prototype.sayBye = function () {
alert(”Bye” + this.name);
}
這個里面的this,緊貼的非prototype的函數(shù)是MyObj(再次注意,js中class是通過函數(shù)實(shí)現(xiàn)的),所以this.name就是實(shí)例變量。
但是在這種情況
MyObj.prototype.doSomething = function () {
todo(function () {
alert(this.name);
});
}
這個時候,this表示的是這個匿名函數(shù)
function () {
alert(this.name)
}
那么這里就會出現(xiàn)錯誤,如果想要這樣使用,應(yīng)該使用輔助變量。
MyObj.prototype.doSomething = function () {
var me = this; //把自己的reference賦值給變量me
todo (function () {
alert(me.name); //通過me來訪問myObj實(shí)例
});
}
Visibility快于Display
讓圖畫時隱時現(xiàn)會創(chuàng)造很有趣的效果,有2種方法可以實(shí)現(xiàn)這個目的:使用CSS的visibility屬性或者
display屬性。對于絕對位置元素,diaplay和visibility具有同樣的效果。兩者的區(qū)別在于:設(shè)置為
display:none的元素將不再占用文檔流的空間,而設(shè)置為visibility:hidden的元素仍然保留原位置。
==============一點(diǎn)經(jīng)驗(yàn)=======================
1、JS變量沒有塊作用域,在判斷循環(huán)中的定義在整個函數(shù)內(nèi)都有定義
2、split()的參數(shù)是一個正則字符串,因此如果用鄭澤表達(dá)式特殊字符作為參數(shù)時一定要轉(zhuǎn)義
=============隱去瀏覽器中當(dāng)鼠標(biāo)移到圖片上跳出的工具欄=============
<img galleryimg="no">
或者
<head>
<meta http-equiv="imagetoolbar" content="no">
</head>
=============一些技巧==================
1、#連接不會回到頂部
<a href="#" ōnClick="return false">
---------------
2、關(guān)閉不提示
opener=null;
window.close();
============js面向?qū)ο缶幊痰囊恍┛偨Y(jié)=============
1、靜態(tài)屬性類實(shí)例訪問不到,同樣實(shí)例屬性只能實(shí)例訪問
var myfun=function(){this.a="a"};
myfun.b="b";
alert(new myfun().a);//輸出a
alert(myfun.a);//輸出undefined
alert(myfun.b);//輸出b
alert(new myfun().b);//輸出undefined
2、給prototype添加屬性
添加給prototype的屬性將會成為使用這個構(gòu)造函數(shù)創(chuàng)建的對象的通用屬性。
function Fish(name, color)
{
this.name=name;
this.color=color;
}
Fish.prototype.livesIn="water";
Fish.prototype.price=20;
正如上面的例子所示,每條實(shí)例魚可以有不同的名字和顏色,但是他們有一個共同的屬性,那就是都生活在水里。
這時因?yàn)楫?dāng)一個對象被創(chuàng)建時,這個構(gòu)造函數(shù)將會把它的屬性prototype賦給新對象的內(nèi)部屬性__proto__。這個__proto__被這個對象用來查找它的屬性。
3、用prototype給對象添加函數(shù)
通過prototype來給所有對象添加共用的函數(shù)。這有一個好處:你不需要每次在構(gòu)造一個對象的時候創(chuàng)建并初始化這個函數(shù)。
4、每個函數(shù)都有一個靜態(tài)name屬性(同樣,每個內(nèi)置類都有一個靜態(tài)name屬性),這個屬性不能也不會被覆蓋
function a()={};
var b=new Function();
alert(b.name);//輸出anonymous
alert(a.name);//輸出a
alert(Array.name);//輸出Array
==================關(guān)于this==================
之所以說一下this,是因?yàn)樗⒉煌耆韧贑++或者Java里面的this變量。
this在js中表示緊貼著調(diào)用地點(diǎn)的,非prototype擴(kuò)展的方法。
比如上面提到的
MyObj.prototype.sayBye = function () {
alert(”Bye” + this.name);
}
這個里面的this,緊貼的非prototype的函數(shù)是MyObj(再次注意,js中class是通過函數(shù)實(shí)現(xiàn)的),所以this.name就是實(shí)例變量。
但是在這種情況
MyObj.prototype.doSomething = function () {
todo(function () {
alert(this.name);
});
}
這個時候,this表示的是這個匿名函數(shù)
function () {
alert(this.name)
}
那么這里就會出現(xiàn)錯誤,如果想要這樣使用,應(yīng)該使用輔助變量。
MyObj.prototype.doSomething = function () {
var me = this; //把自己的reference賦值給變量me
todo (function () {
alert(me.name); //通過me來訪問myObj實(shí)例
});
}
相關(guān)文章
bootstrap布局中input輸入框右側(cè)圖標(biāo)點(diǎn)擊功能
這篇文章主要為大家詳細(xì)介紹了bootstrap布局中input輸入框右側(cè)圖標(biāo)點(diǎn)擊功能實(shí)現(xiàn)的相關(guān)代碼,感興趣的小伙伴們可以參考一下2016-05-05
JavaScript獲取網(wǎng)頁中第一個鏈接ID的方法
這篇文章主要介紹了JavaScript獲取網(wǎng)頁中第一個鏈接ID的方法,涉及javascript中document.links方法的使用,需要的朋友可以參考下2015-04-04
javascript實(shí)現(xiàn)數(shù)字+字母驗(yàn)證碼的簡單實(shí)例
本篇文章只要是對javascript實(shí)現(xiàn)數(shù)字+字母驗(yàn)證碼的簡單實(shí)例進(jìn)行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助2014-02-02
理解Javascript_15_作用域分配與變量訪問規(guī)則,再送個閉包
在閱讀本博文之前,請先閱讀《理解Javascript_13_執(zhí)行模型詳解》 在'執(zhí)行模型詳解'中講到了關(guān)于作用域分配的問題,這一篇博文將詳細(xì)的說明函數(shù)對象、作用域鏈與執(zhí)行上下文的關(guān)系。2010-10-10
JavaScript中的幾個關(guān)鍵概念的理解-原型鏈的構(gòu)建
JavaScript中的prototype,標(biāo)準(zhǔn)翻譯為“原型”,表示對象的初始形態(tài)2011-05-05

