学习感悟2

开学第二天,继学习感悟1开始写学习感悟2

1.今天主要学习了面向对象的编程,Ecmascript主要包括两种属性,1是数据属性,2是访问器属性,其中数据属性有4个描述其行为的特性(configurable、enumerable、writable、value)访问器属性同样也包括4个属性(configurable、enumerable、get、set)

2.面型对象有很多设计模式

(1)工厂模式

function creatPerson(name,age,job){
    var o = new Object();
    o.name = name;
    o.age = age;
    o.job = job;
    o.sayname = function(){
                                 alert(this.name);
          };
     return o;
}
var p1 = creatPerson("sun",21,"software engineer");
var p2 = creatPerson("che",23,"software engineer");

工厂模式虽然解决了多个相似对象的问题,但是却没有解决对象识别的问题(即怎样知道一个对象的类型),这时候出现了构造函数模型

(2)构造函数模式

function creatPerson(name,age,job){
    this.name = name;
    this.age = age;
    this.job = job;
    this.sayname = function(){
                                 alert(this.name);
          };
}
var p1 = creatPerson("sun",21,"software engineer");
var p2 = creatPerson("che",23,"software engineer");

构造函数毕竟也是普通函数,可以当做函数来使用,构造函数虽然好用,但是每个方法都要在每个实例上重新创建一遍,在前面的例子中,p1和p2都有一个sayname()方法,但是两个方法不是同一个function实例,,虽然可以将方法定义为全局函数,但是定义多了全局函数多了就没有丝毫封装性可言,于是就引入了原型模式

(3)原型模式

function person(){
}
person.prototype={
    name:"sun",
    age:21,
    job:"software engineer",
    sayname:function(){
          alert(this.name);
    }
};
var p1 = new person();
p1.sayname();//sun
var p2 = new person();
p2.sayname();//sun
alert(p1.sayname == p2.sayname);//true

实例一定要在原型之后创建,重写原型对象切断了现有原型与之前已经存在的对象实例之间的联系,原型对象最大的问题是由其共享问题导致的

原型中有一个数组,实例v1向其push一个字符串,v2实例也会含有这个字符串,这正是很少有人单独使用原型模式的原因,最热门的的组合使用  构造函数模式 + 原型模式

function person(name,age,job){
    this.name = name;
    this.age = age;
    this.job = job;
    this.friends = ["che","xi","sao","kang"];
}
person.prototype={
    constructor : person,
    sayname:function(){
          alert(this.name);
    }
};
var p1 = new person("sun",21,"ssoftware engineer");
var p2 = new person("pang",21,"girlfriend");
p1.friends.push("pang");
alert(p1.friends);
alert(p2.friends);
alert(p1.friends == p2.friends);//false
alert(p1.sayname == p2.sayname);//true

3.匿名函数要必须定义在调用之前函数声明则并不需要,因为函数声明提升

function f(num){
    if(num <=1){
      return 1;
    } else {
           return num*arguements.callee(num-1);//减少耦合性
    }
}

4.重点理解

;(function(){

  //这里是块级作用域

})();

将函数声明转换为函数表达式只需要加个括号就ok

时间: 03-01

学习感悟2的相关文章

C#与JAVA学习感悟

C#与JAVA学习感悟 学完C#与JAVA,感觉收获良多.C#与JAVA这两门语言相似度很高(了解它们早期历史的人可能知道为什么),也许很多人在学习JAVA(或C#)时会同时学习C#(或JAVA),因为它们太相似了.但在我看来先学习一种,精通后学另一种,这样的效率会高一些,同样是因为它们太相似了,许多概念都是相通的,但这些概念并不好理解和消化,如果同时学习两种,只会让你的头脑更加的混乱.当然,如果你认为自己够牛逼,也可以试试同时学习它们.下面是我的一些总结: 1. C#与JAVA这两门语言是面向

String源码学习感悟

今天学习了一下String的源码.下面是我的学习感悟. 1. String str = "ABC"; Char[] data = {'A','B','C'}; String str = new String(data); 这两个是一样的.也就是说:String的底层就是字符的数组. 2. java提供了特殊的运算符'+',这个运算符可以用来将两个String类型的字符串相加获得新的字符串. String str1 = "AAA"; String str2 = &qu

乐嘉性格色彩-4色特性,学习感悟

现在社会对心理学越来越重视了,现在提起心理学,不再是神秘的话题,越来越多人热爱上了心理学,对你来说,你为何要学心理学呢?有些人的想法可能就觉得心理学能够了解一个人的内心,但是这样做的好处难道就只是判断人们的心理么?心理学这门学科能给人们带来哪些好处,这里简单的分享下个人学习感悟 : 心理学方面的作用主要是:发现自我.了解自我.悦纳自我.成长自我!所以学习心理学不是有些人理解的了解他人和利用他人的心理而行事,了解世界和别人之前,首先要先了解自己.其实这就跟很多佛家思想,或者一些哲学.瑜伽心灵与精神

C/C++的指针以及对编程的学习感悟

博主是个22岁刚毕业的应届生,还好在学校所幸自己努力,通过自学弥补了小部分不是计算机专业出生的缺陷.曾别人帮助我,我觉得应该写博客,乐于分享. 博主去年11月开始实习,因为自学,基础差的要命,有多差?我只能告诉你,连C++语法都没过关.类模版是什么都不知道,以至于别人问我“你知道类模版吗?(说说你对类模版的理解)”.哦,类模版啊,Template嘛,面试官开始微笑,我现在想想,估计那面试官只差没当场笑倒在地上了.所幸的是,后来有个经理看着我很努力,很好学,学习态度好.肯收留我,拿到的薪水也是一个

以小时候玩的贪吃蛇为例,对于Java图像界面的学习感悟

简介: 一直以来用代码来写图形界面是我从来没有做过的事,(-?-;)额,但是已经选择软开这条路,我觉得什么都是要会一点,这样的话也许大概可能多个月后重新写东西能够得心应手很多吧.而且,以后自己要是忘记了,也可以在这里看看,顺便提高高自己文学能力.原谅我敲字比较难看懂,这些当中多多少少是存在自己情感写出来的,看正文好了. Read after me:本文是适合一些刚入门学习图形化界面的博友,当然要多多少少了解java之类的基础知识(类相关知识,泛型集合等),否则看看好了.工程文件将会在最后给出附录

五月学习感悟

时间总是在你不经意间悄然流逝,独留两手苍苍的你黯然神伤,开学三个月了,每天总是保留着一种生活节奏,似乎是一首经典老歌在单曲循环.这学期的课很多,活动也不少,每天可以说都是排得满满的,但就是这种满满的充实,不知为何,自己却感觉不到自己到底真正收获了多少.相反,很多课程的学习,进度都有些吃力.一次偶然,看到一位同学手里的<读者>,那是自己高中时期最爱的杂志了,大学,沉下心一想,有些贪图享乐了.读高中时,看过一本名人传记,深受其经历的影响,觉得自己上大学以后也应像他一样度过这大学四年的时光,多读书多

android学习感悟第一条小溪

据说开辟99条小溪,就可以进入大海! 今天心血来潮读了一些android前辈们写的心得和一些技术博客,回想下自己这半年来学习android开发的过程,酸甜苦辣五味成杂,这半年的历程让我痛苦,但我也经常发扬阿Q精神,不停的鼓励自己坚持下去. 从事android开发并不是我最初的打算和目的,我在大二时学习了java语言,对编程挺感兴趣的,大四的时候是我们该出去找实习了,不幸的是我找的第一家面试的公司竟是一家培训机构,年少懵懂的我就稀里糊涂的从找实习沦落为交钱参加他们的培训,更主要的是自己还乐得屁颠屁

学习感悟

  对梦想的追逐,重未放弃过,一直再努力着:希望未来是美好的啊!   学习技术,不是个简单的过程:需要刻苦的付出,不断的努力!!   感谢老男孩教育提供一个学习的平台!!   感谢那些曾经帮助过我的人,有你们的陪伴,我才能坚持到今天啊!!

学习感悟——20170528

总结一下今天下午做的事情. 1.重新研究了回调函数(代码还需要整理,研究了几种情况后来自己的思路都乱了.这个还需要在整理) 2.研究了逗号运算符的几种用法(代码还需要整理,代码review一遍,其中涉及到了等号的结合性.运算符是基础中的基础,有时候搞不明白会出大问题.) 3.学习了es6中let.const.块级作用域.顶层对象(整理了一些笔记.正真记住的不多,需要回看代码,并运行代码.) 4.今天本来是要研究es6中构造函数中回调函数的this问题.真正有用的是es6顶层对象的设计和回调函数的