◆ 对——成员函数(方法)

比如:我们希望对象不但有属性,还希望他有行为,(行为在程序中要靠函数来体现)

① 添加speak函数,输出 我是一个好人

② 添加jisuan函数,可以计算1+…+1000的结果

③ 修改jisuan函数,该方法可以接收一个数n,计算1+…+n的结果

④ 添加add成员函数,可以计算两个数的和

function Person(name,age){

//这个就是使用传入的实际参数,去初始化属性

this.name=name;

this.age=age;

//输出自己的名字,这里this.show 就是一个公开的函数,函数名是show

this.show=function(){

document.write("名字+="+this.name);

}

//添加jisuan函数,可以计算从1+...+1000的结果

this.jisuan=function(n){

var res=0;

for(var i=1;i<=n;i++){

res+=i;

}

return res;

}

}

var p1=new Person("宋江",90);

p1.show();

var p2=new Person("林冲",12);

p2.show();

document.write("&lt;br/>"+p1.jisuan(100));

▲给对象添加方法还有两种方式:

第一种:

function 类名(){

this.属性;

}

var 对象名=new 类名();

function 函数名(){

//执行

}

对象名.属性名=函数名;//这样就相当于把 函数赋给 对象名.属性名,此时这个属性名就表示一个函数。

对象名.属性名()

具体案例:

function Person(){

this.name="abc";

this.age=900;

}

function show1(){

window.alert("hello"+this.name);

}

var p1=new Person();

p1.abc=show1;

p1.abc();

第二种:

对象名.属性名=function(参数列表){

//代码

};

调用

对象名.属性名(实际参数);

具体案例

function Person(){

this.name="abc";

this.age=900;

}

var p1=new Person();

p1.abc=function show1(){

window.alert("hello"+this.name);

};

p1.abc();

第三种:

前面的几种方法有一个问题:那就是每个对象独占函数代码。这样如果对象过多,则会

影响效率,js设计者,给我们提供了另一个方法,原型法:这样多个对象可以共享函数代码:代码:

//希望所有的对象,共享某个函数

function Dog(){

}

//使用prototype去绑定一个函数给shout

//所有的类都会有prototype(原型)属性,prototype中所有绑定的方法,都是共享的

var dog1=new Dog();

//动态绑定一个函数给 shout属性

Dog.prototype.shout=function(){

window.alert('小狗');

}

dog1.shout();

var dog2=new Dog();

dog2.shout();//这里ok

对代码的原理说明:

clip_image002

→补讲=号的作用

① 当==的两边 都是字符串的时候,则比较内容 相等否

② 如==两边都是数字,则数的大小是否相等。

③ 如果==是对象,或者是 对象函数,则比较地址是否相等