带有标签 语法 的文章

我们都知道在函数体内使用yield关键字将会使函数返回一个生成器对象,在英文字典中,yield不仅有“生产”(produce)的意思,还有“屈服,让步”(give way)的意思,因此python最开始也使用了生成器的关键字yield来处理协程(coroutine)。但是不同的是,协程中yield关键字通常出现于表达式的右侧,例如received = yield value;协程不仅可以生成数据(或者不生成数据),也可以接收数据。理解协程中的yield,要把yield看做是用来执行控制流的,而不是生成数据的。

python协程的历史

python协程最早的实现是在python2.5中,自此可以在表达式中使用yield关键字了,同时为生成器实现了.send(value)方法用于向yield表达式传递数据,.throw()方法用于抛出异常,.close()方法用于终结。具体描述在PEP 342中。

...

查看全文

简述JavaScript对象与继承

JavaScript是基于原型的语言,每一个对象都有一个原型对象。通过构造器函数实例化的对象可以通过浏览器实现的__proto__接口访问其原型对象(ECMA官方实现为Object.getPrototypeOf(obj)),此对象的构造器函数同样有一个属性prototype指向此原型对象。

...

查看全文

人们常将闭包与匿名函数混淆,因为在函数体内定义函数并不十分常见,直到我们要用到匿名函数,而只有在嵌套函数的情况下讨论闭包才有意义。

事实上,闭包与匿名函数并无关系。闭包指的是函数包含一个扩展的作用域,该作用域内的非全局变量不是在该函数体内定义,但该函数可以引用这些变量,即使这些变量离开了创建它的环境。它与函数是否匿名无关。segmentfault上有一个形象的解释: ...

查看全文

今天在使用 Vue.js 的列表渲染时,写了一个菲波那切数列函数,在输入数字 n 后,网页将渲染菲波那切数列的前 n 项,使用了ES6语法中的解构赋值,结果函数出现了一些问题:

function fibonacci(n) {  var nums = [] ...
            

查看全文