1.构造函数
构造函数是一种特殊的方法,它的主要作用是完成对对象实例的初始化。
特点:
(1)构造函数(方法)名和类名相同
(2)在创建一个对象实例时,系统会自动的调用该类的构造方法完成对新对象的初始化。
2.构造函数的基本用法
function 类名(参数列表){
属性=参数值;
}
举例:
function Person(name,age){
this.name=name;
this.age=age;
}
//创建Person对象的时候就直接可以给名字,年龄
var p1=new Person('abc',80);
window.alert(p1.name);
3.在给一个对象初始化属性值的时候,也可以指定函数属性。
举例:
function jiSuan(num1,num2,oper){
if(oper=="+"){
return num1+num2;
}else if(oper=="-"){
return num1-num2;
}else if(oper=="*"){
return num1*num2;
}else{
return num1/num2;
}
}
function Person(name,age,fun){
this.name=name;
this.age=age;
this.myfun=fun;
}
var p1=new Person("aa",9,jiSuan);
window.alert(p1.name);
window.alert(p1.myfun(70,80,"+"));
4.有了构造函数后,对类(原型对象)的定义就可以进一步完善。
function 类名(){
属性;
}
function 类名(){
属性;
函数(方法);
}
function 类名(参数1,参数2,...){
属性=参数1;
...
函数=参数2;
}
5.创建对象的又一种形式
如果一个对象比较简单,我们可以直接创建(可以指定普通属性和函数属性)
var dog={name:'小狗',age:8,fun1:function(){window.alert("hello world")}};
window.alert(dog.constructor);
window.alert(dog.name+dog.age);
dog.fun1();
6.有时我们会看到这样一种调用方法
函数名.call(对象实例);
//这样调用,该函数的this就是对象实例
举例:
var dog={name:'hello'};
function test(){
window.alert(this.name);
}
test(); //输出undefined
window.test();//输出undfined
test.call(dog);//相当于调用test(),同时this执行dog对象,输出hello
new test(); //输出undfined
7.
var dog={name:'小明',sayHello:function(a,b){window.alert("结果="+(a+b));}};
//循环列出dog对象的所有属性和方法 对象名['属性名']
for(var key in dog){
window.alert(dog[key]);
}
document.write("***当前浏览器window对象有属性和方法***<br/>");
for(var key in window){
document.writeln(key+":"+window[key]+"<br/>");
}