2016-09-10 曹强
写在前面 Module模式最初被定义为一种在传统软件工程中为类提供私有和公有封装的方法。而在Javascript中,Module模式用于进一步模拟类的概念,通过这种方式,能够使一个单独的对象拥有公有/私有的方法和变量,从而屏蔽来自全局作用域的特殊部分。产生的结果是:函数名与在页面上其他脚本定义的函数冲突的可能性降低。 应当注意的一点是:在Javascript没有private访问修饰符因此算不得真正的私有,而是通过函数作用域来模拟私有这个概念。在Module模式内由于闭包的存在,声明的变量和方法只在该模式内部可用,但在返回对象上定义的变量和方法是可以对外访问的。 more 示例 var testModule=(functi 继续阅读 »
2015-06-25 W.Y.
在大型、复杂和快速迭代的系统中,CSS 将非常难以维护。原因之一就是 CSS 没有作用域的概念,每个 CSS 都是全局的,这意味着对 CSS 的任何修改就可能导致一些 UI 的级联改变。 CSS 的扩展语言 -- CSS 预处理器,比如 Sass、Less 和 Stylus,使我们编写 CSS 更加容易,但在我看来,这些 CSS 的扩展语言并没有真正解决可扩展性问题。 在 CSS 支持作用域机制之前,我们需要一种机制,使我们的样式只与特定的 HTML 部分关联,这就是 CSS 方法论。本文将讨论如下的 CSS 方法论: Object-Oriented CSS (OOCSS) Block, Element, Modifier ( 继续阅读 »
2014-01-02 W.Y.
Angular-Ui 对于 AngularJS 开发者来说是一个非常重要的工具,其中 UI-Router 又是重中之重。UI-Router 插件提供了“嵌套作用域等规则”等有用的特性,对于复杂项目开发非常实用,最近在项目中开始使用 UI-Router ,于是决定好好把它学习一遍,这些文章都来源于 UI-Router 的 github,由于能力有限,有些地方没有看懂,另外还有一些地方只能意译出来,希望大家在参观的过程中指出其中的错误。 学习 ui-router - 管理状态 学习 ui-router - 状态嵌套和视图嵌套 学习 ui-router - 多个命名的视图 学习 ui-router - 路由控制 学习 ui-router 继续阅读 »
2014-06-12 W.Y.
本文译自 Dmitry A. Soshnikov 的文章 ECMA-262-3 in detail. Chapter 5. Functions. 其中大部分参考了 goddyzhao 的翻译。 概述 本文将介绍 ECMAScript 中一个非常常见的对象 -- 函数。我们将着重介绍函数都有哪些类型,不同类型的函数是如何影响上下文的变量对象的,以及每种类型的函数的作用域链中都包含什么,并回答诸如下面这样的问题:下面声明的函数有什么区别吗?(如果有,区别是什么)。 js var foo = function () { ... }; 上述方式创建的函数和如下方式创建的有什么不同? js function foo() { 继续阅读 »
2016-11-15 ruki
最近对xmake.lua的工程描述语法进行了增强,现已可以同时支持两种不同语法风格。 set-add描述风格 key-val描述风格 set-add描述风格 这种是xmake经典的设置风格,例如: lua target("test") set_kind("static") add_defines("DEBUG") add_files("src/*.c", "test/*.cpp") 优势:控制灵活,可以根据各种条件,通过if-then进行灵活的条件编译,可以驾驭各种高度复杂的配置需求。 劣势:作用域控制不明显,需要手动规范化缩进 key-val描述风格 这种是xmake最近新加的风格,例如: l 继续阅读 »
2016-10-30 ruki
新特性 为解释器作用域增加一些内建模块支持 针对windows x64平台,支持ml64汇编器 改进 增强ipairs和pairs接口,支持过滤器模式,简化脚本代码 为vs201x工程生成增加文件filter 移除core/tools目录以及msys工具链,在windows上使用xmake自编译core源码进行安装,优化xmake源码磁盘空间 移除xmake/packages,默认模板安装不再内置二进制packages,暂时需要手动放置,以后再做成自动包依赖下载编译 Bugs修复 修复msvc的编译选项不支持问题:-def:xxx.def 修复ml.exe汇编器脚本 修复选项链接顺序问题 继续阅读 »
2016-08-03 曹强
Angular-Ui 对于 AngularJS 开发者来说是一个非常重要的工具,其中 UI-Router 又是重中之重。UI-Router 插件提供了“嵌套作用域等规则”等有用的特性,对于复杂项目开发非常实用,最近在项目中开始使用 UI-Router ,于是决定好好把它学习一遍,这些文章都来源于 UI-Router 的 github,下面是这次学习内容 学习 ui-router - 管理状态 学习 ui-router - 状态嵌套和视图嵌套 学习 ui-router - 多个命名的视图 学习 ui-router - 路由控制 学习 ui-router - 组件 more 继续阅读 »
2016-03-11 Li Shuai
延迟绑定 Python闭包函数所引用的外部自由变量是延迟绑定的。 In [2]: def multipliers(): ...: return [lambda x: i * x for i in range(4)] In [3]: print [m(2) for m in multipliers()] [6, 6, 6, 6] 如以上代码: i是闭包函数引用的外部作用域的自由变量, 只有在内部函数被调用的时候才会搜索变量i的值, 由于循环已结束, i指向最终值3, 所以各函数调用都得到了相同的结果。 解决方法: 1) 生成闭包函数的时候立即绑定(使用函数形参的默认值): In [5]: def multip 继续阅读 »
2016-07-06 ruki
主页 源码 更新内容 此版本,主要修复一些bug和稳定性改善 改进 修改安装和卸载的action处理 更新工程模板 增强函数检测 Bugs修复 #7: 修复用模板创建工程后,target名不对问题:'[targetname]' #9: 修复clang不支持c++11的问题 修复api作用域泄露问题 修复在windows上的一些路径问题 修复检测宏函数失败问题 修复检测工具链失败问题 修复windows上编译android版本失败 继续阅读 »
2016-09-10 曹强
写在前面 singleton模式是被熟知的原因是因为它限制了类的实例化次数只能一次。从经典意义上来说,singleton模式在该实例不存在的情况下,可以通过一个方法创建一个类来实现创建类的新实例;如果实例已经存在,它会简单返回该对象的引用。 singleton不同于静态类(或对象),因为我们可以推迟它们的初始化,这通常是因为它们需要一些信息,而这些信息在初始化期间可能无法获得、对于没有察觉到之前的引用的代码,它们不会提供方便检索的方法。这是因为它既不是对象,也不是由一个singleton返回的“类”;它是一个结构。 思考一下闭包变量为何实际上并不是闭包,而提供闭包的函数作用域是闭包。在Javascript中,singleton 继续阅读 »