1. Javascript中的对象
对象是一种复合数据类型,将多个数据值集中在一个单元中,而且允许使用名字来存储这些值。另一种解释,对象是一个无序的属性集合,每个属性都有自己的名字和值,存储在对象中的已命名的值既可以是数字和字符串,也可以是对象。
2. 创建空对象
var o = new Object();//使用构造函数创建空对象
var o = {};//使用对象直接量创建空对象
3. 遍历对象的属性
Function DisplayPropertyNames(obj){
var names = “”;
for (var name in obj)
names += name+”\n”;
alert(names);
}.
4. 删除对象的属性
Delete person.name
如果读取一个不存在(就是还没有被赋值的属性)的值,得到undefined
删除掉的属性则不是把对象的属性设置成undefined,而是从对象中真正移除了属性。
For/in循环可以枚举出已经被设为undefined的属性,但不列出被删除的属性。
5. 构造函数
构造函数是具有两个特性的函数:一、由new运算符调用。二、传递给它的是一个对新创建的空对象的引用,将该引用作为关键字this的值,而且还要对新创建的对象进行适当的初始化。
Function Rectangle(w,h){
this.width=w;
this.height=h;
}
var rect = new Rectangel(1,2);//把指向rect的this传递给构造函数,初始化?
构造函数只是初始化了由this传递进来的对象,并不返回对象
6.方法
方法就是通过对象调用javascript函数。
函数就是数值,他们所使用的名字没有任何特殊之处,可以将函数赋给任何变量,值赋给一个对象的任何属性。
任何一个函数都会得到一个额外的实际参数,既调用该函数的对象。
在方法体内部,关键字this的值就变成了调用该方法的对象。
函数是存储在变量中的值,而那个变量也不过是全局对象的一个属性,当调用一个函数时,实际上调用的事全局对象的一个方法。在这样的函数中,关键字this引用的是全局对象。
用构造函数定义方法
function Rectangle(w,h){
this.width=w;
this.height=h;
this.area =function(){
return this.width*this.height;
}
}
用构造函数定义方法的缺点:对所有的属性都进行了设置,其中方法属性是常量,所以每个对象的方法属性都是相同的,由于每个属性都占用一定的空间,所以占用的内存会增加。解决方法是用对象的原型属性。
7、原型对象和继承
每个对象都有原型对象,原型对象的所有属性是以它为原型的对象的属性。一个对象的原型是由创建并初始化该对象的构造函数定义的。Javascript中的所有函数都有prototype属性,他引用了一个对象,虽然原型对象初始化时是空的,但是你定义在其中的任何属性都会被该构造函数所创建的所有对象继承。
对象的读写不对称:读取对象o的属性p时,javascript首先检查o是否具有一个名为p的属性,如果o没有这个属性,javascript会再检查o的原型是否具有这个属性,这样才使得以原型为基础的继承机制起作用。当写一个属性的值的时候,javascirpt并不使用原型对象。因为当一个对象o还没属性p的时候,设置p的值会改变原型对象p的值,这样会改变了整个对象类的p的值,而不仅仅是改变了自己想要改变的属性值。
8、面向对象的javascript
定义类Cricle
Function Circle(radius){
this.r=radius;//定义实例属性并初始化
}
//类属性
Circle.PI = 3.1415;
//实例方法
Circle.prototype.area = function Circle_area(){ return Circle.PI*this.r*this.r}/
//类方法
Circle.max = function(a,b){
If(a.r>b.r) return a;
else return b;
}
9、超类和子类
在javascritp中,类object是最通用的类,是其他所有内部类的超类。所有类都继承了Object类的基本方法。
对象从它们构造函数的原型对象中继承属性,又从Object对象中继承属性。
原型对象本身就是一个对象,它是由构造函数Object()创建的。这就意味着原型对象继承了Object.protype属性。而Complex对象就继承了Complex.prototype对象的属性,而后者又继承了Object.prototype属性。
Function MoreComplex(real,imaginary){
this.x =real;
this.y=imaginary;
}
MoreComplex.protytype = new Complex(0,0);
//给子类添加新方法或特性
MoreComplex.prototype.swap = function(){
Var tmp = this.x;
this.x = this.y;
this.y = tmp;
}
//由于此时MoreComplex的Constructor 指向超类的constructor,所以必须明确地设置constructor属性
MoreComplex.prototype.constructor = MoreComplex;
10、对象的属性和方法
Javascript中所有的对象都由类Object继承而来,以下是Object定义的属性和方法。
Constructor属性:每个对象都有Constructor属性,它引用的是用来初始化该对象的构造函数。
toString()方法:没有任何实际参数,返回一个字符串,该字符串代表了调用它的对象的类型或值。该方法的目的是让每个对象类都有自己特定的字符串表示,当你定义一个类时,就应该为他定义一个toString()方法,以便能将这个类的实例转化成有意义的字符串。当一个函数被转换成字符串时,获得该函数的源代码。
Valueof(), toLocaleString() , hasOwnProperty() , propertyIsEnumerable() , isPrototypeOf()
分享到:
相关推荐
1. **代码文件**:可能是用C++, JavaScript, Python或其他编程语言编写的,它们实现了游戏的逻辑和控制。通过阅读这些代码,我们可以学习到如何处理用户输入、渲染游戏画面、处理碰撞检测以及实现游戏循环等。 2. *...
例如,葡萄、核桃、石榴、无花果等水果品种,以及狮子、犀牛等动物,都在此过程中被引进到中国,而中国的音乐、舞蹈、绘画也在吸收外来文化的基础上变得更加多元化和精致。 文章中特别提到了两位关键人物,张骞和...
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
《基于YOLOv8的智慧社区独居老人生命体征监测系统》(包含源码、可视化界面、完整数据集、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计
Android Studio Meerkat 2024.3.1 Patch 1(android-studio-2024.3.1.14-mac.dmg)适用于macOS Intel系统,文件使用360压缩软件分割成两个压缩包,必须一起下载使用: part1: https://download.csdn.net/download/weixin_43800734/90557060 part2: https://download.csdn.net/download/weixin_43800734/90557056
侧轴承杯加工工艺编制及夹具设计.zip
NASA数据集锂电池容量特征提取(Matlab完整源码和数据) 作者介绍:机器学习之心,博客专家认证,机器学习领域创作者,2023博客之星TOP50,主做机器学习和深度学习时序、回归、分类、聚类和降维等程序设计和案例分析,文章底部有博主联系方式。从事Matlab、Python算法仿真工作8年,更多仿真源码、数据集定制私信。
板料折弯机液压系统设计.zip
C6150车床的设计.zip
机器学习之KNN实现手写数字
python爬虫;智能切换策略,反爬检测机制
mpls-vpn-optionA-all
56tgyhujikolp[
GB 6442-86企业职工伤亡事故调查分析规则.pdf
汽车液压式主动悬架系统的设计().zip
2000-2024年各省专利侵权案件结案数数据 1、时间:2000-2024年 2、来源:国家知识产权J 3、指标:专利侵权案件结案数 4、范围:31省 5、用途:可用于衡量知识产权保护水平
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
内容概要:本文档详细复现了金融数学课程作业,涵盖欧式看涨期权定价和投资组合优化两大部分。对于欧式看涨期权定价,分别采用Black-Scholes模型和蒙特卡洛方法进行了计算,并对彩虹期权进行了基于最大值的看涨期权定价。投资组合优化部分则探讨了最小方差组合、给定收益的最小方差组合、最大效用组合以及给定风险的最大收益组合四种情形,还对比了拉格朗日乘数法和二次规划求解器两种方法。文中不仅提供了详细的MATLAB代码,还有详尽的中文解释,确保每一步骤清晰明了。 适合人群:金融工程专业学生、量化分析师、金融数学爱好者。 使用场景及目标:①帮助学生理解和掌握金融衍生品定价的基本原理和方法;②为从事量化分析的专业人士提供实用工具和技术支持;③作为教学材料辅助高校教师讲授相关内容。 其他说明:文档还包括了完整的论文结构建议,从封面页到结论,再到附录,涵盖了所有必要元素,确保提交的作业符合学术规范。此外,还特别强调了数据预处理步骤,确保代码可以顺利运行。
脉冲电解射流加工喷射装置设计(1)
ThinkPad S1 (2nd Generation) 和ThinkPad Yoga 260 用户指南V3.0,包含如何拆机更换硬件