Posted in Javascript onDecember 06, 2010
一.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
(注:记录一下这些内容只是以后查阅起来方便,作为自己知识积累的记录。其中有很多是参考网络上的资源,不再一一写出出处,还请原作者见谅。)
javascript中的一些注意事项 更新中
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@