《JS高级程序设计》PART3.对象基础
3.2对象应用
· 对象废除:如果一个对象有2个及以上引用,则要正确的废除该对象,必须将其所有引用都设置为null。
js和java一样,有垃圾回收机制,会自动收回已无引用指向的对象。
· 早绑定和晚绑定
绑定:把对象的接口和实例结合在一起的方法。
早绑定:指在实例化对象之前定义他的特性和方法;
玩绑定:指在编译器或解释程序在运行前,不知道对象的类型。ECMASCript采用的是晚绑定。
3.3对象类型
1.本地对象
· Array类
以下用示例来说明其用法:
var arry = new Array(10); //不知大小时,可以省略,在后面的代码中可以任意增加
var arry = new Array("red","green","blue");
alert(arry[1]);//"green"
var sCor = "red,green,blue";
var arry = sCor.split(",");//转化为Array对象
var sCor = "green";
var arry = sCor.split("");//使用空串分割,则会分成各个字符:"g,r,e,e,n"
Array有2个String具有的方法:concat():连接 /slice():截取部分内容
Array提供了栈的功能:
var stack = new Array;
stack.push("red");
stack.push("green");
alert(stack.toString());//"red,green"
var aa = stack.pop();//"green"
shift():将删除数组第一项,并作为函数值返回。/Unshift反之。
通过shift和push(),可完成队列的功能。
· Date类
var d = new Date(Date.parse("6/1/2011"));//如果传递的字符串无法转为日期,将为NaN
var d = new Date(Date.UTC(2011,0,6));//设置月份特别注意,因为其月的设置从0开始 (2011-1-6)
2.内置对象
ECMASCript中提供了2个内置对象:Global和Math;
Global的eval()方法:该方法就像整个ECMASCript解释程序,接受一个参数,将其解释为真正的ECMASCript语句,然后把它插入到该函数所在的位置。
3.宿主对象
所有非本地对象都是宿主对象,即由ECMASCript实现宿主环境的对象。所有的BOM和DOM对象都是宿主对象。
3.5定义类或对象
使用构造函数形式:
function Car (sColor,iDoor){
this.color = sColor;
this.doors = iDoor;
this.showColor = function(){
alert(this.color)
};
}
var oCar = new Car ('red',4);
var oCar2 = new Car("green",3);
注:对象的结构不用实现定义,直接在构造函数中按需取用。
以上创建对象中所拥有的函数为2份,出现内存浪费。(c++、java中所有对象的函数共用一份)
改进:将函数提出来,在构造函数之后,用prototype添加.(prototype属性可用来定义方法)
Car.prototype.showColor = function(){ alert(this.color};
3.6修改对象
创建新方法:Number.prototype.toHexString = function(){return this.toString(16)};
重定义已有的方法:再定义一遍,就会覆盖,因为ECMASCript没有重载。
More:http://blog.donews.com/me1105/archive/2011/02/10/118.aspx
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述