Javascript 個人筆記(沒有整理,很亂)

來源:互聯網
上載者:User

==============關於元素的顯示和隱藏=============

Visibility快於Display

讓圖畫時隱時現會創造很有趣的效果,有2種方法可以實現這個目的:使用CSS的visibility屬性或者

display屬性。對於絕對位置元素,diaplay和visibility具有同樣的效果。兩者的區別在於:設定為

display:none的元素將不再佔用文檔流的空間,而設定為visibility:hidden的元素仍然保留原位置。

==============一點經驗=======================

1、JS變數沒有塊範圍,在判斷迴圈中的定義在整個函數內都有定義

2、split()的參數是一個正則字串,因此如果用鄭澤運算式特殊字元作為參數時一定要轉義

=============隱去瀏覽器中當滑鼠移到圖片上跳出的工具列=============

<img galleryimg="no">

或者

<head>

<meta http-equiv="imagetoolbar" content="no">

</head>

=============一些技巧==================

1、#串連不會回到頂部

<a href="#" ōnClick="return false">

---------------

2、關閉不提示

opener=null;

window.close();

============js物件導向編程的一些總結=============

1、靜態屬性類執行個體訪問不到,同樣執行個體屬性只能執行個體訪問

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的屬性將會成為使用這個建構函式建立的對象的通用屬性。

function Fish(name, color)

{

this.name=name;

this.color=color;

}

Fish.prototype.livesIn="water";

Fish.prototype.price=20;

正如上面的例子所示,每條執行個體魚可以有不同的名字和顏色,但是他們有一個共同的屬性,那就是都生活在水裡。

這時因為當一個對象被建立時,這個建構函式將會把它的屬性prototype賦給新對象的內部屬性__proto__。這個__proto__被這個對象用來尋找它的屬性。

3、用prototype給對象添加函數

通過prototype來給所有對象添加共用的函數。這有一個好處:你不需要每次在構造一個對象的時候建立並初始化這個函數。

4、每個函數都有一個靜態name屬性(同樣,每個內建類都有一個靜態name屬性),這個屬性不能也不會被覆蓋

function a()={};

var b=new Function();

alert(b.name);//輸出anonymous

alert(a.name);//輸出a

alert(Array.name);//輸出Array

==================關於this==================

之所以說一下this,是因為他並不完全等同於C++或者Java裡面的this變數。

this在js中表示緊貼著調用地點的,非prototype擴充的方法。

比如上面提到的

MyObj.prototype.sayBye = function () {

alert(”Bye” + this.name);

}

這個裡面的this,緊貼的非prototype的函數是MyObj(再次注意,js中class是通過函數實現的),所以this.name就是執行個體變數。

但是在這種情況

MyObj.prototype.doSomething = function () {

todo(function () {

alert(this.name);

});

}

這個時候,this表示的是這個匿名函數

function () {

alert(this.name)

}

那麼這裡就會出現錯誤,如果想要這樣使用,應該使用輔助變數。

MyObj.prototype.doSomething = function () {

var me = this; //把自己的reference賦值給變數me

todo (function () {

alert(me.name); //通過me來訪問myObj執行個體

});

}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.