javascript中的属性注意事项
1.函数原型prototype设置的对象是只读类型,所以不能修改(即栈只读)。但是我们常常可以看到它被“修改‘’了。若对象中定义的属性和原型中属性一样,优先使用自定义属性。
例如代码:
- //原型 类似于父类
- function students() {
- this.major= '数学';
- this.studentsName = ['张三','李四','王五'];
- }
- var myStudents = new students(); //必须建立实例对象 才能被其他对象'继承';
- //建立对象
- function teacher(sub) {
- }
- teacher.prototype = myStudents;//设置原型
- var mathTeacher = new teacher(); //创建对象
- mathTeacher.studentsName[] = '赵六';
- var englishTeacher = new teacher(); //创建对象
- englishTeacher.major = 'English';
- alert('studentsName=' + mathTeacher.studentsName + " " + 'major=' + mathTeacher.major);//输出结果
- alert('studentsName=' + englishTeacher.studentsName + " " + 'major=' + englishTeacher.major);//输出结果
输出结果为:
但是它们修改的方式是不一样的。
- mathTeacher.studentsName[0] = '赵六';
studentsName指向的数组不能变,但是数组成员可以变。例如studentsName指向三年二班,你就不能让它重新指向四年一班。但是三年二班的学生改变了,studentsName还是指向三年二班没有改变。(这涉及栈堆问题)
- englishTeacher.major = 'English';
这并没有改变原型中的major,只是对象新建了一个和原型中的major同名的属性,根据原则优先使用自定义属性。
2.innertext和innerHTML属性的区别:
给innertext任何值都将视为文本,并以文本的形式完整的输出。
而innerHTML能判断给的值是否是标签,若是转为标签。例如
- <script type="text/javascript">
- //页面加载完成后执行
- window.onload = function () {
- window.p1.innerText = "<a href='" + 'http://www.baidu.com' + "'>"+'百度'+'</a>';
- window.p2.innerHTML = "<a href='" + 'http://www.baidu.com' + "'>" + '百度' + '</a>';
- }
- </script>
- </head>
- <body>
- <!--第一个p标签 用于测试innerText-->
- <p id="p1">
- </p>
- <!--第一个p标签 用于测试innerHTML-->
- <p id="p2">
- </p>
- </body>
运行结果为
3.一个需要图片跟着鼠标移动的需求,使用document.body.onmousemove发现不太理想,于是使用了document.onmousemove达到了效果。于是稍微琢磨了一下两者的区别。
在给document.body使用background-color染色时发现是整个屏幕染色。但是实际上document.body只有图片大小(本例中),只有鼠标在图片中移动时图片才会跟着移动。所以应该是body中有多少元素就撑多大。教程中说的body 的width 是不受限制,实际测试中也是受限制的(时代在变化?)。
而document.onmousemove是针对整个屏幕的事件。所以根据需求做不同的选择吧。
4.在设置元素大小时发现不是直接在元素中设定的style属性,无法直接使用xxx.style.heigth获得 ,得使用xxx.offsetHeigth获得。宽也一样。
javascript中的属性注意事项的更多相关文章
- 深入理解JavaScript中的属性和特性
深入理解JavaScript中的属性和特性 JavaScript中属性和特性是完全不同的两个概念,这里我将根据自己所学,来深入理解JavaScript中的属性和特性. 主要内容如下: 理解JavaSc ...
- Javascript中length属性的总结
Javascript中length属性的总结 一.StringObject中的length length属性是返回字符串的字符数目. 例如: // 普通字符串 var str = " ...
- [转] JavaScript中的属性:如何遍历属性
在JavaScript中,遍历一个对象的属性往往没有在其他语言中遍历一个哈希(有些语言称为字典)的键那么简单.这主要有两个方面的原因:一个是,JavaScript中的对象通常都处在某个原型链中,它会从 ...
- 【转载】JavaScript中的属性:如何遍历属性
转载自:http://www.cnblogs.com/ziyunfei/archive/2012/11/03/2752905.html 在JavaScript中,遍历一个对象的属性往往没有在其他语言中 ...
- Javascript中prototype属性详解 (存)
Javascript中prototype属性详解 在典型的面向对象的语言中,如java,都存在类(class)的概念,类就是对象的模板,对象就是类的实例.但是在Javascript语言体系中,是不 ...
- 详解 javascript中offsetleft属性的用法(转)
详解 javascript中offsetleft属性的用法 转载 2015-11-11 投稿:mrr 我要评论 本章节通过代码实例介绍一下offsetleft属性的用法,需要的朋友可以做一 ...
- (转载)详解Javascript中prototype属性(推荐)
在典型的面向对象的语言中,如java,都存在类(class)的概念,类就是对象的模板,对象就是类的实例.但是在Javascript语言体系中,是不存在类(Class)的概念的,javascript中不 ...
- Javascript中prototype属性详解
在典型的面向对象的语言中,如java,都存在类(class)的概念,类就是对象的模板,对象就是类的实例.但是在Javascript语言体系中,是不存在类(Class)的概念的,javascript中不 ...
- Javascript中prototype属性的详解
原文链接:http://www.cnblogs.com/Uncle-Keith/p/5834289.html 在典型的面向对象的语言中,如java,都存在类(class)的概念,类就是对象的模板,对象 ...
随机推荐
- Java集合 -- HashSet 和 HashMap
HashSet 集合 HashMap 集合 HashSet集合 1.1 Set 接口的特点 Set体系的集合: A:存入集合的顺序和取出集合的顺序不一致 B:没有索引 C:存入集合的元素没有重复 1. ...
- python学习笔记之——range()函数
range函数的三种用法:>>> range(1,5) # 代表从1到5(不包含5) [1, 2, 3, 4] >>> range(1,5,2) # 代表从1到5, ...
- clean-css
What is clean-css? Clean-css is a fast and efficient Node.js library for minifying CSS files. Accord ...
- .net网站转到出错页是如何实现的
<customErrors mode="On" defaultRedirect="GenericErrorPage.htm"><error s ...
- 关于sys CPU usage 100%问题的分析
最近一个客户抱怨他的核心EBS数据库出现性能问题.这是一个10.2.0.3的数据库,运行在Red Hat Enterprise Linux Server release 5.5 (Linux x86- ...
- 远程连接MySQL服务器
在CentOS虚拟机上安装好了MySQL服务以后,在windows上用Workbench客户端去连接时碰到很多问题,现在把解决过程记录一下. 1.在Windows上ping CentOS IP是可以p ...
- 最大公约数(GCD)与最小公倍数(LCM)的计算
给出两个数a.b,求最大公约数(GCD)与最小公倍数(LCM) 一.最大公约数(GCD) 最大公约数的递归: * 1.若a可以整除b,则最大公约数是b * 2.如果1不成立,最大公约数便是b ...
- .NET Reflector注册机激活方法
.NET Reflector注册机是一款专门针对.NET Reflector(.NET反编译工具软件)而推出的一款破解辅助工具软件.因为官方破解版软件需要118美元才能用,不然只有14天的试用期,为此 ...
- MVC中JavaScript和CSS的自动打包与压缩
在程序中安装System.Web.Optimization程序集 依赖关系如下图所示: 添加BundleConfiguration类 代码如下所示 注意必须使用对应的ScriptBundle和Styl ...
- 【C#】#100 调用摄像头
需求:由于项目需要获得用户的头像,所以需要用C#调用摄像头获取头像. 下面写一个调用摄像头的方法 案例:调用摄像头的一个DEMO[效果图] 使用的类库:AForge.dll [Demo下载,Dem ...