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 相关文章推荐
JavaScript 核心参考教程 内置对象
Oct 13 Javascript
jQuery源码分析-02正则表达式 RegExp 常用正则表达式
Nov 14 Javascript
JS通过相同的name进行表格求和代码
Aug 18 Javascript
js实现鼠标滚轮控制图片缩放效果的方法
Feb 20 Javascript
Javascript进制转换实例分析
May 14 Javascript
Flow之一个新的Javascript静态类型检查器
Dec 21 Javascript
非常棒的jQuery图片轮播效果
Apr 17 Javascript
angular ngClick阻止冒泡使用默认行为的方法
Nov 03 Javascript
Vue.js如何实现路由懒加载浅析
Aug 14 Javascript
vue的安装及element组件的安装方法
Mar 09 Javascript
vue实现微信分享功能
Nov 28 Javascript
Vue切换Tab动态渲染组件的操作
Sep 21 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
COM in PHP (winows only)
2006/10/09 PHP
php 验证码制作(网树注释思想)
2009/07/20 PHP
windows下升级PHP到5.3.3的过程及注意事项
2010/10/12 PHP
PHP开发框架laravel安装与配置教程
2015/03/13 PHP
详解PHP 二维数组排序保持键名不变
2019/03/06 PHP
Mozilla中显示textarea中选择的文字
2006/09/07 Javascript
一样的table?不一样的table(可编辑状态table)
2012/09/19 Javascript
Js日期选择器并自动加入到输入框中示例代码
2013/08/02 Javascript
火狐下table中创建form导致两个table之间出现空白
2013/09/02 Javascript
JavaScript按位运算符的应用简析
2014/02/04 Javascript
PHP中使用微秒计算脚本执行时间例子
2014/11/19 Javascript
javascript中String对象的slice()方法分析
2014/12/20 Javascript
2014 年最热门的21款JavaScript框架推荐
2014/12/25 Javascript
javascript实现验证IP地址等相关信息代码
2015/05/10 Javascript
JQuery中两个ul标签的li互相移动实现方法
2015/05/18 Javascript
JavaScript动态添加css样式和script标签
2016/07/19 Javascript
解决同一页面中两个iframe互相调用jquery,js函数的方法
2016/12/12 Javascript
vue2.0 路由不显示router-view的解决方法
2018/03/06 Javascript
Vue 项目分环境打包的方法示例
2018/08/03 Javascript
nodejs中使用worker_threads来创建新的线程的方法
2021/01/22 NodeJs
python encode和decode的妙用
2009/09/02 Python
python如何使用unittest测试接口
2018/04/04 Python
python RabbitMQ 使用详细介绍(小结)
2018/11/08 Python
解决python3 Pycharm上连接数据库时报错的问题
2018/12/03 Python
解决python3中cv2读取中文路径的问题
2018/12/05 Python
django echarts饼图数据动态加载的实例
2019/08/12 Python
python3通过qq邮箱发送邮件以及附件
2020/05/20 Python
Python3基于print打印带颜色字符串
2020/07/06 Python
CSS3实现点击放大的动画实例代码
2017/02/27 HTML / CSS
AT&T Wireless:手机、无限数据计划和配件
2018/06/03 全球购物
加拿大领先的时尚和体育零售商:Sporting Life
2019/12/15 全球购物
常用UNIX 命令(Linux的常用命令)
2013/07/10 面试题
银行实习生的自我评价
2013/12/09 职场文书
法学求职信
2014/06/22 职场文书
升学宴学生答谢词
2015/01/05 职场文书
使用pytorch实现线性回归
2021/04/11 Python