javascript中的一些注意事項 更新中

來源:互聯網
上載者:User

一.prototype原型對象,需要注意的原則是: 
 (1). 使用原型可以大量減少每個對象對記憶體的需求量,因為對象可以繼承許多屬性。
(2). 即使屬性在對象被建立之後才被添加至原型中,對象也能夠繼承這些屬性。
範例程式碼: 複製代碼 代碼如下:<script type="text/javascript">
function print(msg)
{
document.write(msg,'<br/>');
}
function printhr()
{
document.write('<hr/>');
}
print("prototype屬性:<br/>"+
"1. 使用原型可以大量減少每個對象對記憶體的需求量,因為對象可以繼承許多屬性。<br/>"+
"2. 即使屬性在對象被建立之後才被添加至原型中,對象也能夠繼承這些屬性。");
printhr();
function User(name)
{
this.name=name;
}
var zhang = new User('老張');
zhang.favchannel ='hello';
User.prototype.favchannel='CCTV';
Object.prototype.qq ='569723660';
print(zhang.favchannel);
print(zhang.qq);
</script>

運行結果為:
prototype屬性:
1. 使用原型可以大量減少每個對象對記憶體的需求量,因為對象可以繼承許多屬性。
2. 即使屬性在對象被建立之後才被添加至原型中,對象也能夠繼承這些屬性。
二.setTimeout和setInterval 兩個函數都定義在window對象中。setTimeout(fun_name,time_minisec)作用是在time時間後運行fun_name函數一次;setInterval(fun_name,time_minisec)作用是每隔time_sec時間都去運行fun_name函數。
範例程式碼如下: 複製代碼 代碼如下:<html>
<head></head>
<body>
<div id="show"></div>
<input type="button" value='' id='btntime'></input>
<script type='text/javascript'>
function print(msg)
{
document.write(msg,'<br/>');
}
var changetime = function()
{
var d=new Date();
var h=d.getHours();
var m=d.getMinutes();
var sec=d.getSeconds();
var ampm=(h>=12)?'PM':'AM';
if(h>12) h-=12;
if(h==0)h=12;
if(m<10) m='0'+m;
var t=h+':'+m+':'+sec+" "+ampm;
var button = document.getElementById('btntime');
button.value = "setInterval:"+t;
}
changetime();
setInterval("changetime()",1000);
function time_setTimeOut()
{
var d=new Date();
var h=d.getHours();
var m=d.getMinutes();
var sec=d.getSeconds();
var ampm=(h>=12)?'PM':'AM';
if(h>12) h-=12;
if(h==0)h=12;
if(m<10) m='0'+m;
var t=h+':'+m+':'+sec+" "+ampm;
document.getElementById('show').innerHTML='setTimeout:'+t;
setTimeout('time_setTimeOut()',1000);
}
time_setTimeOut();
</script>
</body>
</html>

三.本機物件,內建對象和宿主對象
1.本機物件包含的內容有 Object、Function、Array、String、Boolean、Number、Date、RegExp、Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、URIError 都是一些 ECMA-262 定義的參考型別。
2.內建對象:由 ECMAScript 實現提供的、獨立於宿主環境的所有對象,在 ECMAScript 程式開始執行時出現(ECMA-262定義), 內建對象只有兩個Global 和 Math ,它們都是本機物件。內建對象就是一種特殊的本機物件。
3.宿主對象:所有非本機物件都是宿主對象(host object),即由 ECMAScript 實現的宿主環境提供的對象。
總之,本機物件,就是那些官方定義好了的對象。內建對象是本機物件的一種,其只包含Global對象和Math對象。而宿主對象則是那些官方未定義,你自己構建的對象加上DOM和BOM對象組成的。

四.Array.prototype.slice.call(_array,begin[,end]) 的使用相當於_array.slice(begin[,end]),不過Array.prototype.slice.call的效率要遠遠高過第二種用法。
樣本:
  function p(msg)
  {
    document.write(msg,'<br/>');
  }
  p(Array.prototype.slice.call([1,2,3,4],2));
  p([1,2,3,4].slice(2));
運行結果:
  3,4
  3,4
(註:記錄一下這些內容只是以後查閱起來方便,作為自己知識積累的記錄。其中有很多是參考網路上的資源,不再一一寫出出處,還請原作者見諒。)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.