Javascript闭包

闭包的主要有两个作用: 读取函数的内部变量 让这些内部变量始终保持在内存中,因为局部函数一旦执行完毕,就会销毁局部变量。 exm1:

变量a始终存在于内存当中,func3被赋给了全局变量test,而func1是func3的父函数,因此变量并没有被回收。 exm2:

  闭包func1返回了一个函数的引用

返回给了window,当加上( )执行这段代码时,代码引用权限被赋予给了window,this(this即执行上下文,只在代码运行时才确定)此时就是window,返回的就是全局变量。 exm3:

这里返回的那段代码执行上下文仍然是this,但是返回的是 that.str ; 而that是指向对象object,因此,输出的是object里的局部变量str,实现了外部函数访问局部变量。 exm4:

这里的this依然是Window,而打印出来却是内部变量Inner,原因是JavaScript中的函数运行在它们被定义的作用域里,而不是它们被执行的作用域里。    代码在定义的作用域内执行,即inner function 里面,沿着作用域寻找到了name变量,于是输出。  this此时指向的是Window,因此直接输出全局作用域的name。  

demo

1.demo结构 <inventory-app> || //传入数组 <product-list> || //进行迭代,并显示 <product-row> || 每个商品的badage,又可以拆分成图片,部门,价格等组件。 2. 输出属性,@Output装饰器 这个装饰器用于向其它组件发射数据,常配合eventEmitter使用。 在本demo中,组件先声明一个输出属性: @Output onProductSelected:EventEmtter(); 然后在构造函数中生成(new)一个发射器: 组件中是通过click()事件函数来发送被选中的product;最后使用onProductSelected.emit(product)发射出去。 然后,在组件的html模板中, <rec-comp>标签表示是发送数据的目标组件,因为使用的是click方法,因此(click)=’clicked(productChoosed)’ click是一个内置方法,当点击某个元素(row)时。就调用列表组件中的clicked(produtChoosed)方法,发射数据到根组件, 根组件: <product-list [products]=’products’ (onProductelected)=’productWasSelected($event)’>…

Basics(1)

1.subString(start,stop) substring() 从字符串中提取一些字符 substring() 方法返回的子串包括 start 处的字符,但不包括 stop 处的字符。 2. CSS定位 absolute 生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。元素的位置通过 “left”, “top”, “right” 以及 “bottom” 属性进行规定。absolute定位是相对于第一个static定位的元素定位,如果父元素没有生命定位或者是static定位,此时就不会相对于父元素进行定位。 fixed 生成绝对定位的元素,相对于浏览器窗口进行定位。元素的位置通过 “left”, “top”,…

SpaceX Falcon Heavy Lunch

美国东部时间2018年2月6日下午15:45分,在佛罗里达NASA肯尼迪发射中心,Elon Musk创立的Space X公司发射了重型火箭 Falcon Heavy,它是世界上现役最强的火箭。在人类航天史上也仅次于美国1969年登月所使用的土星5号火箭。 并且完美地实现了火箭一级回收, 除此之外,还顺便发射了starMan,starman驾驶Tesla跑车遨游太空,方向盘下方刻有Don‘t Panic,电路板上面还刻着Made on Earth by humans,根据Elon Musk的说法,它将进入漫长的环绕太阳轨道,至少将在太阳系存在十亿年。 就像’银河系漫游指南’里面一样,满足了多少人的科幻情怀 SpaceX Falcon Heavy Lunch:

Javascript-this总结

this是Javascript语言的一个关键字。 它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用。比如,  

随着函数使用场合的不同,this的值会发生变化。但是有一个总的原则,那就是this指的是,调用函数的那个对象。 下面分四种情况,详细讨论this的用法。 情况一:纯粹的函数调用 这是函数的最通常用法,属于全局性调用,因此this就代表全局对象Global。 请看下面这段代码,它的运行结果是1。  

为了证明this就是全局对象,我对代码做一些改变:

  运行结果还是1。再变一下:

  情况二:作为对象方法的调用 函数还可以作为某个对象的方法调用,这时this就指这个上级对象。

  情况三 作为构造函数调用 所谓构造函数,就是通过这个函数生成一个新对象(object)。这时,this就指这个新对象。

Angular2(二)

1、注意把数据结构从组件代码里分离出来。创建额外的数据模型(类)并导入。以及构造函数传参等。如

这是一个普通类而不是Angular组件。在MVC模式中,它被称为模型(model)。 2、组件之间传值步骤, ①创建数据模型 ②在组件或服务中定义一些需要传送的数据 ③传送,目标组件的选择器(标签)=>插入 [InputName]=’name’, [InputName]=’name’, 左侧是输入属性名,即目标组件的:@Input() InputName:elementype,位置。右侧是迭代局部变量,即装载了数组的值;name由ngFor指令设置。 当传送过来后,就可以在目标组件的视图中使用了。 3、javascript方法split()和sort() split(origin_tring,array_max_length)[i] 参数:起始位置、数组最大长度、选取切割后的第i个字符串。 sort(sortBy/sortFunction) 默认根据编码来排序,参数表示根据指定方法排序。

Angualr2(一)

1.ng g component component_name 生成组件。 2. ng serve命令会自动把.ts文件编译成.jswenjian。 3.import { something } from somewhere ,用来拉取依赖 其中,{ something } 这部分称做解构。 4. 装饰器 @component 当在一个类上使用@component时,这个类就被装饰成一个组件。 5. <prefix-xxxx>选择器(标签)…