function Person(){
var name ="abc";//私有的,只能在内部使用
var age = 90;//私有的,只能在内部使用
this.name2 = "abc2";
this.show=function(){ //如果你一定要访问私有属性,则需要定义一个公开的方法(特权方法)
windows.alert(name+" "+age);
}
function show2(){
window.alert("show2()"+ name + " "+age);
}
}
var p1 = new Person();//错误
p1.show();
function test1(){
alert(this.v)
}
var v =90;
window.test1();//打印90 哪个对象实例调用this所在函数,那么this就代表哪个对象
//给一个对象添加指定的函数的方式1
function Person(){
this.name = "tom";
this.age = 10;
}
function show1(){
window.alert("hello"+this.name);
}
var p1 = new Person();
p1.abc= show1;
p1.abc();
//给一个对象添加指定的函数的方式2
function Person(){
this.name = "tom";
this.age = 10;
}
var p1 = new Person();
p1.abc= function show1(){
window.alert("hello"+this.name);
};
p1.abc();
function Dog(){//如何给对象添加公共方法?
}
var dog1 = new Dog();
dog1.shout=function(){
window.alert('小狗');
}
dog1.shout();
var dog2 = new Dog(){
}
dog2.shout();//这里报错,一个对象动态添加的方法只能为该对像使用,其他对像不行
//那么如何使几个对象共用一个方法?
//这时候原型法(prototype就起作用了)相当于在模版上进行了修改,原来的只是动态添加而已,模版没动
function Dog(){
}
var dog1 =new Dog();
Dog.prototype.shout=function(){
window.alert('小狗');
}
dog1.shout();
var dog2 = new Dog();
dog2.shout();//这样就OK