JS中实现封装主要由2种封装(公开,私有)
//通过构造函数给所有对象分配属性;
functionDog(name){
this.name=name;
this.shot=function(){
window.alert(“小狗尖叫”+this.name);
}
}
//通过原型法来给所有的对象方法
Dog.prototype.shout=function(){
Window.alert(“小狗尖叫”+this.name);
}
vardog1=new Dog(“aa”);
var dog2=newDog(“bb”);
if(dog1==dog2){
alert(“dog1==dog2”);
}else{
alert(“dog1!=dog2”);
}
|
结论:
//通过构造函数来给每个对象实例分配属性(成员方法),给每个对象都分配一份独立的代码,代价高
//通过原型方法则每个成员的代码都一样
//通过原型方法可以给每个成员分配属性:Dog.prototype.color=”red”
①通过原型法分配的函数是所用对象共享的;
②通过原型法分配的属性是独立的
③建议:如果我们希望所有的对象使用一个函数,建议使用原型法,节省内存
function Person(){
}
//创建对象
//p1.say;(如果此时先绑定再声明say函数,则会报错,因为是后置绑定)
var p1=new Person();
Person.prototype.say=function(){
Window.alert(“OK”);
}
p1.say();
类名.prototype.函数名称为后置绑定。