JavaScript(下)
- 对象
可查阅JScript文档作为JavaScrip对象参考,两者差不多
如:String对象
var str ="abc";
var str = new String("abc");
- Prototype 原型属性
用prototype属性提供对象的类的一组基本功能。对象的新实例“继承”赋予该对象原型的操作。
例:要为Array对象添加返回数组中最大元素值的方法。要完成这一点,声明该函数,将它加入Array.prototype,并使用它。
function array_max(){
var i,max=this[0];
for(i=1;i<this.length;i++){
if(max<this[i])
max = this[i];
}
return max;
}
Array.prototype.max = array_max;(也可使用匿名函数)
var x =new Array(1,2,3,4);
var y = x.max();
//this为对本类对象的引用
- JS特有语句-with
格式:
with(对象)
{
在该区域中可以直接使用指定对象的内容,不需要写 对象.
}
- 特有语句-for in
格式:
for(变量 in 对象)//对自定义对象或数组对象进行遍历的语句
{
}
例
var arr = [23,34,45];
for(i in arr){
document.write(i); //0,1,2
}
- JS自定义对象
如果想要自定义对象,应该先对对象进行描述,但js是基于对象,不是面向对象的,不具备描述事物的能力。
我们还想按照面向对象的思想编写js,就要先描述
在js中,可以用函数来模拟面向对象中的描述
例:
//用js来描述人
function Person() //相当于构造器
{
alert("person run");
}
//通过描述进行对象的建立。new
var p = new Person();
//动态给p对象添加属性。直接使用p.属性名即可
p.name="zhangsan";
p.age=29;
//如果定义的p对象的属性赋值为一个函数,即是给p对象添加一个方法
p.show = function(){
alert("show:"+this.name+":"+"this.age);
}
只要new一个对象,可随时向对象动态添加属性
- 第二种方式
function Person(name,age){
this.name=name;
this.age=age;
this.setName=function(name){
this.name=name;
}
this.getName = function(){
return this.name;
}
}
var p =new Person("旺财",20);
-
第三种方式
var person = { //定义一些成员 "name":"小明", "age"=12, "getName":function(){ return this.name; } } alert(pp.age+":"+pp.getName()); alert(pp["age"]+":"+pp.getName()); //大括号封装实体,键值对;键值对间用逗号隔开