js高级——原型使用的注意事项

来源:互联网 发布:食品安全网络培训 编辑:程序博客网 时间:2024/05/20 19:48
functionPerson(){

}
Person.prototype.name= "张安";
Person.prototype.age= 19;

varp = new Person();
console.log(p.name);    //这个时候p对象里面还没有name这个属性,所以就在原型里面找到了“张安”

p.name= "李四";      //这个时候是添加name属性
console.log(p.name);

varp1 = new Person();
console.log(p1.name);

1、使用对象访问属性的时候,如果在自己内部找不到就会去原型中查找
2、使用“.”语法进行属性赋值的时候  不会去原型中查找
    因为根据对象的动态属性,点语法是属性存在的时候修改,不存在的时候创建


这个时候p访问的是李四
3、
var car = {
    brand:"laosilaisi",
    type:"huanying"
};

Person.prototype.car = car ;          //给原型对象中添加了一个car属性,并且这个car属性指向的是car这个对象

var p = new Person();
console.log(p.car.brand);

p.car.brand = "奥拓";

var p1 = new Person();
console.log(p1.car.brand);

Person.prototype.car = {      //替换了原型对象中的属性
    brand:"BYD"
};
var p2 = new Person();
console.log(p2.car.brand);


p对象里面没有car这个属性,所以就去原型里面找,原型里面有,找到之后就去访问地址里面的brand属性得到laosilaisi
然后再给p对象里面的car属性里面的brand属性赋值,赋值为奥拓


当替换原型中的属性之后:




4、如果在原型中的属性是引用类型,那么所有的对象共享该属性,并且一个对象修改了该引用类型属性中的成员之后,其他对象也都会受影响
5、一般情况下不会将属性放到原型对象里面,因为每一个对象都有自己的特征,也就是属性,所以每个对象都应该要有一个自己存储属性的地方,不应该所有对象共享一个属性
6、一般情况下原型中只会方需要共享的方法
7、对象可以访问原型对象里面的属性
    varp = new Person("张学友",18,"male");
    varp1 = new p.constructor("刘德华",19,"male");//相当于直接使用new Person()










阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 漂亮小姑娘 干小姑娘 一个小姑娘 农家小姑娘 年轻小姑娘 我的小姑娘 玩小姑娘 小姑娘喜欢 可爱的小姑娘 哄小姑娘 采蘑菇的小姑娘歌谱 可爱小姑娘 欧美小姑娘 小姑娘怎么画 采蘑菇的小姑娘歌 不想长大的小姑娘 什么的小姑娘 采蘑菇的小姑娘歌曲 小姑娘名字 小姑娘的逼 采蘑菇的小姑娘1 小姑娘编发 采蘑菇的小姑娘原唱 采蘑菇的小姑娘故事 采蘑菇的小姑娘儿 采蘑菇的小姑娘的歌 采蘑菇的小姑娘词谱 小姑娘的名字 绿灯下的小姑娘 小姑娘说 采蘑菇地小姑娘 采蘑菇的小姑娘在线 采蘑菇的小姑娘钢琴谱 14岁小姑娘 采蘑菇的小姑娘 mp3 采蘑菇的小姑娘串烧 采蘑菇的小姑娘图片 采蘑菇的小姑娘古筝曲 小姑娘的图片 可爱的小姑娘图片 采蘑菇的小姑娘吉他谱