js高级——传统构造函数存在的问题

来源:互联网 发布:报表数据的重要性 编辑:程序博客网 时间:2024/06/06 05:37
//写一个构造函数 用来创建学生对象
//属性:姓名 年龄 身高 体重
//行为:学习 吃饭 看片 把妹
functionStudent(name){
    this.name= name;
    this.study= function(){
        console.log("好好学习 天天向上");
    }
}

//如果构造函数没有参数,那么在调用的时候小括号可以省略
    varstu = new Student("胡一天");
    stu.study();

    varstu1 = new Student("沈悦");
    stu1.study();

//上面两个对象的实际情况如下图:

每个学生对象的study函数都是同一句代码,那同样的代码在内存里面占两份就不合适。因为封装函数是为了复用,所以这个情况就要考虑封装函数
function studyMethod(){
    console.log("好好学习 天天向上");
}

function Student(name){
    this.name = name;
    this.study = studyMethod;
}



//如果在构造函数内部定义函数,那么每次创建对象时都会重新创建该函数
//但是函数内部代码完全相同就造成了资源浪费
//为了解决这个问题,就要让所有的对象共用一个方法
//在构造函数外部定义好该函数,将该函数赋值给构造函数内的方法


//使用这种方式写好的方法中的this指向的是调用该方法的对象
//this 谁调用就是谁
//如果没有对象调用则默认是window调用,即this默认指向window


//使用这种方式存在的问题
//1、全局变量增多造成污染
//2、代码结构混乱,不易维护






阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 师宗县 曲靖市师宗县 云南师宗 昆明到师宗火车时刻表 师宗到昆明火车时刻表 师宗到曲靖客车时刻表 师宗鲜花 师宗黑尔住宿 新扎师妹2 新扎师妹3 雷霆崖药剂师扎玛 魔兽世界药剂师扎玛 魔兽世界怀旧服药剂师扎玛 魔兽怀旧服药剂师扎玛在哪里 师小札作品集 晚妻 师小札 难得爱浓 师小札 难得一人心师小札 爱眉小札 师小札唐栗郁升的番外 宫斗小札下载安装 狐妖小札popo 灯塔里咖啡馆 师小札 我若在你心上 师小札 师小红几个老婆 演员师小红前妻 师小红个人资料 师小红的前妻是李琳 一日为师终生为父的意思 师师 天下之师 未来之师厨 师师之 异界之绝世仙师 精灵之传奇训练师 中国百戏之师 师带徒图片 师带徒师傅总结 教师师带徒总结 带坏我徒孙 师带徒徒弟心得体会