2015-07-17 Alex Sun
AngularJS的一个强大之处就在于依赖注入。在调用bootstrap的时候,会调用createInjector来创建一个注射器进行注入。该方法的代码简化如下: ```javascript function createInjector(modulesToLoad, strictDi) { strictDi = (strictDi === true); var INSTANTIATING = {}, providerSuffix = 'Provider', path = [], loadedModules = new HashMap([], true), 继续阅读 »
2016-10-31 wilsonIs
六、函数的扩展 函数参数的默认值 ES6中,允许直接为函数的参数设置默认值,如: function log(x, y = 'World') { console.log(x, y); } log('Hello') // Hello World log('Hello', 'China') // Hello China log('Hello', '') // Hello 继续阅读 »
2015-06-15 W.Y.
ES6
如何遍历一个数组的元素?在 20 年前,当 JavaScript 出现时,你也许会这样做: javascript for (var index = 0; index < myArray.length; index++) { console.log(myArray[index]); } 自从 ES5 开始,你可以使用内置的 forEach 方法: javascript myArray.forEach(function (value) { console.log(value); }); 代码更为精简,但有一个小缺点:不能使用 break 语句来跳出循环,也不能使用 return 语句来从闭包函数中返回。 如果有 for 继续阅读 »
2015-06-20 W.Y.
ES6
今天讨论的新特性让我非常兴奋,因为这个特性是 ES6 中最神奇的特性。 这里的“神奇”意味着什么呢?对于初学者来说,该特性与以往的 JS 完全不同,甚至有些晦涩难懂。从某种意义上说,它完全改变了这门语言的通常行为,这不是“神奇”是什么呢。 不仅如此,该特性还可以简化程序代码,将复杂的“回调堆栈”改成直线执行的形式。 我是不是铺垫的太多了?下面开始深入介绍,你自己去判断吧。 more 简介 什么是 Generator? 看下面代码: javascript function* quips(name) { yield "hello " + name + "!"; yield "i hope you are enjoy 继续阅读 »
2016-08-26 Jamling
PHP是非常流行的Web服务端语言,Ajax是Web前端异步加载的技术。刚刚学习PHP,发现PHP真是强大,对Ajax或RESTFul的支持非常好,代码写起来也非常简单。今天分享一个个人学习的测试示例,前端使用Ajax向服务端发送请求,服务端使用PHP处理请求,并返回响应信息。接口规范遵循RESTFul。 前端 为简化Ajax操作,引入JQuery来发送Ajax请求。请求包含查询字符串,HTTP头及表单数据。 ```html test.html Document function my_post() { var div = $('#result'); $.ajax({ 继续阅读 »
2015-04-05 W.Y.
Airbnb 的 ES5 规范写的非常好,现在添加了 ES6 的部分。 另外阮一峰老师的 ECMAScript 6 入门值得参考。 more 类型 原始类型:值传递 string number boolean null undefined ```js const foo = 1; let bar = foo; bar = 9; console.log(foo, bar); // => 1, 9 ``` 复杂类型:引用传递 object array function ```js const foo = [1, 2]; const bar = foo; bar[0] = 9; console.log 继续阅读 »
2017-07-29 ruki
find_package This interface refers to the design of CMake for the find_* interfaces, which finds and adds package dependencies in the project target. lua target("test") set_kind("binary") add_files("*.c") on_load(function (target) import("lib.detect.find_package") target:add(find_package(" 继续阅读 »
2016-06-13 Lu Huang
本节实现的是使用OpenCV里自带的函数,在双击图片时,以其为圆心绘制圆。 回调函数 捕捉鼠标事件 实现过程 引用与创建空图 不再赘述,代码如下。 ``` python import cv2 import numpy empty image img = np.zeros((512, 512, 3), np.uint8) ``` 设置回调函数 检测鼠标事件,如果左击鼠标则绘制圆。 ```python call back function def draw_circle(event, x, y, flags, param): if event == cv2.EVENT_LBUTTONDBLCLK: 继续阅读 »
2015-08-12 Lim Geng
递归 ```js function deepCopy(obj) { if (!obj || typeof obj !== 'object') return obj; var target = isPlainObject(obj) ? {} : [], property, val; for (var key in obj) { val = obj[key]; // 防止循环引用 if (val === obj) continue; if (Array.isArray(val) || isPlainObject(val)) { target[key] = deepCo 继续阅读 »
2014-08-20 Xie Jingyi
最近在做一个项目,其中有一段判断一个Extended浮点数是否为整数的代码。我用如下方式实现: pascal function IsInt(F: Extended): Boolean; begin result := Trunc(F)-F = 0; //整数部分等于自身 end; 测试了许多样例都过了,唯独这个没过: pascal IsInt(4.000000002*1000000000); //False 调试时发现: Trunc(F)居然等于4000000001!开始以为是精度的问题,找了许多资料也没能解决。后来将Extended换成了Double,就通过了。百思不得其解中。 继续阅读 »