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验证是否为数字的总结
Apr 14 Javascript
解决jquery1.9不支持browser对象的问题
Nov 13 Javascript
Javascript中常见的校验如域名、手机、邮箱等等
Jan 02 Javascript
JS通过分析userAgent属性来判断浏览器的类型及版本
Mar 28 Javascript
事件委托与阻止冒泡阻止其父元素事件触发
Sep 02 Javascript
JS实现窗口加载时模拟鼠标移动的方法
Jun 03 Javascript
jQuery 判断图片是否加载完成方法汇总
Aug 10 Javascript
彻底解决 webpack 打包文件体积过大问题
Jul 07 Javascript
cocos creator Touch事件应用(触控选择多个子节点的实例)
Sep 10 Javascript
对vue 键盘回车事件的实例讲解
Aug 25 Javascript
微信小程序中使用echarts的实现方法
Apr 24 Javascript
Vue CLI2升级至Vue CLI3的方法步骤
May 20 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
destoon二次开发入门示例
2014/06/20 PHP
php+Memcached实现简单留言板功能示例
2017/02/15 PHP
thinkphp5.0整合phpsocketio完整攻略(绕坑)
2018/10/12 PHP
传智播客学习之JavaScript基础篇
2009/11/13 Javascript
js 判断脚本加载完毕的代码
2011/07/13 Javascript
JS子父窗口互相操作取值赋值的方法介绍
2013/05/11 Javascript
jQuery中closest()函数用法实例
2015/01/07 Javascript
jquery插件orbit.js实现图片折叠轮换特效
2015/04/14 Javascript
JavaScript实现LI列表数据绑定的方法
2015/08/04 Javascript
jQuery实现的多级下拉菜单效果代码
2015/08/24 Javascript
如何解决easyui自定义标签 datagrid edit combobox 手动输入保存不上
2015/12/26 Javascript
JavaScript焦点事件、鼠标事件和滚轮事件使用详解
2016/01/15 Javascript
基于jQuery实现select下拉选择可输入附源码下载
2016/02/03 Javascript
JQuery.validate在ie8下不支持的快速解决方法
2016/05/18 Javascript
nodejs服务搭建教程 nodejs访问本地站点文件
2017/04/07 NodeJs
vue.js利用defineProperty实现数据的双向绑定
2017/04/28 Javascript
关于jQuery.ajax()的jsonp碰上post详解
2017/07/02 jQuery
vue中的非父子间的通讯问题简单的实例代码
2017/07/19 Javascript
AngularJS中下拉框的基本用法示例
2017/10/11 Javascript
浅谈ElementUI中switch回调函数change的参数问题
2018/08/24 Javascript
详解Vue+elementUI build打包部署后字体图标丢失问题
2020/07/13 Javascript
微信小程序实现底部弹出框
2020/11/18 Javascript
Python设计模式之观察者模式实例
2014/04/26 Python
详解Python中列表和元祖的使用方法
2015/04/25 Python
Python中规范定义命名空间的一些建议
2016/06/04 Python
Python 使用matplotlib模块模拟掷骰子
2019/08/08 Python
Python django框架输入汉字,数字,字符生成二维码实现详解
2019/09/24 Python
python 3.7.4 安装 opencv的教程
2019/10/10 Python
python RSA加密的示例
2020/12/09 Python
python爬虫实现爬取同一个网站的多页数据的实例讲解
2021/01/18 Python
Canvas引入跨域的图片导致toDataURL()报错的问题的解决
2018/09/19 HTML / CSS
乌克兰的第一家手表店:Deka
2020/03/05 全球购物
集团公司人力资源部岗位职责
2014/01/03 职场文书
出生医学证明书
2014/09/15 职场文书
PostgreSQL13基于流复制搭建后备服务器的方法
2022/01/18 PostgreSQL
Mysql存储过程、触发器、事件调度器使用入门指南
2022/01/22 MySQL