JS API:对象/方法(函数)/属性
对象
创建对象方法:
1. 对象字面量:大括号和逗号分隔属性所写的对象
2. 构造函数创建对象:new +构造函数
创建对象字面量(注意标点)
Var 对象名={
属性名1:属性值1,
属性名2:[属性值21,属性值22,属性值23]
};
- 访问对象属性
1. 对象名.属性名
2. 对象名[“属性名”]
- 改变属性值
1. 直接赋值
2. 向数组添加:对象名.属性名.push(“向最末尾增加新元素”);
- 枚举对象的所有属性(for in)
Var prop
For (prop in fido){
Alert(“Fido has a “+prop+” property”);
If (prop == “name”){
Alert(“This is ”+ fido[prop]);
}
}
- 处理对象的数组
Var likes=fido.loves;
Var likeString=”Fido likes”;
For (var i=0; i<likes.length; i++){
likeString+=””+likes[i];
}
Alert(likesString);
- 将一个对象赋至变量:
var 变量=对象;/*变量包含对象的一个引用,而不是对象本身,它不保存对象本身*/
调用一个函数并传入一个对象时,实际传递了对象的引用,这个引用的副本会传递到形参,它指向原来的对象。所以当改变一个对象的属性时,改变的是原对象的属性,而不是副本,在函数内外都可以看到对象的改变。
对象中有函数时,称之为对象有一个方法。将匿名函数赋值给一个属性。
代码重用:创建构造函数
1. 命名:首字母大写
2. 形参:取对象属性名,属性名和形参不要求一致,但一般约定为相同的。
3. 将对象属性名初始化为传入构造函数的值:this.属性名=属性名;
4. 可以在构造的对象中包含方法
Function 构造函数名(形参1,形参2,形参3){
This.属性1=形参名1;
This.属性2=形参名2;
This.属性3=形参名3;
This.方法名= function(){
语句;};
}
Function Dog(name,breed,weight){
This.name=name;
This.breed=breed;
This.weight=weight;
This.bark=function(){
If (this.weight>25){Alert(this.name+” says woof!”);}
Else{alert(this.name+” says Yip! ”);}
}
}
Tips:与创建对象区分开,使用分号结束每行,因为构造函数中都是语句。
- 调用构造函数:关键字new
Var 变量名=new构造函数名(“”,””,””);
Var fido=new Dog(“Fido”,”Mixed”,38);
Var tiny=new Dog(“Tiny”,”Mixed”,42);
- 调用方法
Fido.bark();
函数
函数也是值,可以赋值给变量。
Function addOne(num){return num+1;}
Var plusOne=addOne;
Var result=plusOne(1);
函数定义可以没有名字:
Function(num){return num+1;}
Var f=function(num){ return num+1;}
Var result=f(1);
Alert(result);
更多对象:
JS中一切都是对象
Document 是window的一个属性,是用来访问DOM的对象
- Domain//提供文档的服务器的域
- Title//document.title得到文档的标题
- URL//文档的url
------------------------------- - getElementById//根据元素id获取元素
- getElementsByTagName//使用标记获取元素
- getElementsByClassName//使用类获取元素
- createElement//创建适合包含在DOM中的元素
Window
表示JS程序的全局环境、应用的主窗口,因此包含许多核心属性和方法//是全局对象//定义的所有全局变量都会放在window命名空间中
- Document//包含DOM
- Location//包含页面url,改变此属性,浏览器访问新的url
- Onload//包含页面完全加载时,要调用的函数,将window.onload的值设置为页面加载时的一个函数
- Status//包含将在浏览器显示的一个串
------------------- - Alert//显示一个提醒
- Prompt//类似alert,但会从用户得到信息
- Open//打开新的浏览器窗口
- Close
- setTimeout//指定时间间隔后,调用一个处理程序
- setInterval//以一个指定的时间间隔,反复调用一个处理程序
Input
- Value
Button
- Onclick
UL
- innerHTML
- childElementCount
- firstChild
- -----------------------------
- appendChild
- insertBefore
P
- innerHTML
- childElementCount
- firstChild
- --------------------------
- appendChild
- insertBefore//作为元素的子元素,向元素中插入元素
- SetAttribute//设置
- GetAttribute//获取元素中的属性
Tips for “this”:
- THIS只在对象之内有值
- 当对象中嵌套对象时,注意this的指向
Tips for onload:
- 许多对象都有onload属性,当使用window.onload时,最好标明
- Window.οnlοad=init;//将init函数值赋值给onload属性
- Window.οnlοad=init();//调用函数init
tips:
-
向一个没有声明的变量赋值时,会把它当作一个新的全局变量。在函数内部这样做,会产生全局变量。不推荐
-
内置对象与个人创建的对象区别:①. 内置对象遵循W3C规范原则 ②内置对象有些属性不可修改,例如string
- JS 使用一种原型继承的机制,类比于类。
- JS内置对象可否修改/增加属性:“JS内置对象的原型不能整体覆盖,只能单独地动态地为原型添加属性或方法。