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


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 相关文章推荐
JS获得URL超链接的参数值实例代码
Jun 21 Javascript
js/jquery解析json和数组格式的方法详解
Jan 09 Javascript
js自定义鼠标右键的实现原理及源码
Jun 23 Javascript
AngularJS中的$watch(),$digest()和$apply()区分
Apr 04 Javascript
Bootstrap实现各种进度条样式详解
Apr 13 Javascript
vue教程之toast弹框全局调用示例详解
Aug 24 Javascript
VUE中的无限循环代码解析
Sep 22 Javascript
详谈js中标准for循环与foreach(for in)的区别
Nov 02 Javascript
JS计算输出100元钱买100只鸡问题的解决方法
Jan 04 Javascript
微信小程序实现图片上传功能
May 28 Javascript
vue2路由基本用法实例分析
Mar 06 Javascript
原生js实现ajax请求和JSONP跨域请求操作示例
Mar 14 Javascript
JavaScript Accessor实现说明
Dec 06 #Javascript
关于Javascript模块化和命名空间管理的问题说明
Dec 06 #Javascript
javascript处理table表格的代码
Dec 06 #Javascript
菜鸟javascript基础资料整理3 正则
Dec 06 #Javascript
菜鸟javascript基础资料整理2
Dec 06 #Javascript
菜鸟javascript基础整理1
Dec 06 #Javascript
js 上传图片预览问题
Dec 06 #Javascript
You might like
php面向对象全攻略 (十一)__toString()用法 克隆对象 __call处理调用错误
2009/09/30 PHP
php socket通信(tcp/udp)实例分析
2016/02/14 PHP
Zend Framework实现具有基本功能的留言本(附demo源码下载)
2016/03/22 PHP
php利用递归实现删除文件目录的方法
2016/09/23 PHP
PHP 的Opcache加速的使用方法
2017/12/29 PHP
thinkphp3.2.0 setInc方法 源码全面解析
2018/01/29 PHP
PDO::_construct讲解
2019/01/27 PHP
javascript 选择文件夹对话框(web)
2009/07/07 Javascript
JavaScript中的条件判断语句使用详解
2015/06/03 Javascript
js实现密码强度检验
2017/01/15 Javascript
JS中showModalDialog关闭子窗口刷新主窗口用法详解
2017/03/25 Javascript
JavaScript实现省市县三级级联特效
2017/05/16 Javascript
利用百度地图API获取当前位置信息的实例
2017/11/06 Javascript
AngularJS基于http请求实现下载php生成的excel文件功能示例
2018/01/23 Javascript
react-native动态切换tab组件的方法
2018/07/07 Javascript
解决angular2 获取到的数据无法实时更新的问题
2018/08/31 Javascript
NodeJS读取分析Nginx错误日志的方法
2019/05/14 NodeJs
JS运算符简单用法示例
2020/01/19 Javascript
在Vue中使用CSS3实现内容无缝滚动的示例代码
2020/11/27 Vue.js
Python多进程编程技术实例分析
2014/09/16 Python
在Python的循环体中使用else语句的方法
2015/03/30 Python
使用paramiko远程执行命令、下发文件的实例
2017/10/01 Python
python放大图片和画方格实现算法
2018/03/30 Python
selenium+python截图不成功的解决方法
2019/01/30 Python
基于django ManyToMany 使用的注意事项详解
2019/08/09 Python
python梯度下降算法的实现
2020/02/24 Python
python跨文件使用全局变量的实现
2020/11/17 Python
详解CSS3的perspective属性设置3D变换距离的方法
2016/05/23 HTML / CSS
桥梁与隧道工程专业本科生求职信
2013/10/08 职场文书
经济贸易系求职信
2014/08/04 职场文书
公司演讲稿开场白
2014/08/25 职场文书
2015年大学元旦晚会活动策划书
2014/12/09 职场文书
2015年乡镇民政工作总结
2015/05/13 职场文书
2015年物流客服工作总结
2015/07/27 职场文书
php7中停止php-fpm服务的方法详解
2021/05/09 PHP
一篇文章带你深入了解Mysql触发器
2021/08/02 MySQL