PHP, Python和Javascript的装饰模式
修饰模式(Decorator Pattern),又叫装饰者模式,是面向对象编程领域中一种动态地为对象添加新行为的设计模式。就功能而言,修饰模式相比生成子类更加灵活,它可以给某个对象,而不是整个类添加一些功能。装饰模式非常适用于灵活扩展对象的…
修饰模式(Decorator Pattern),又叫装饰者模式,是面向对象编程领域中一种动态地为对象添加新行为的设计模式。就功能而言,修饰模式相比生成子类更加灵活,它可以给某个对象,而不是整个类添加一些功能。装饰模式非常适用于灵活扩展对象的…
在 JavaScript 开发中,call()、apply() 和 bind() 都与函数的 this 有关。它们最核心的作用其实可以简单理解为:改变函数执行时的 this 指向。三者的区别主要在于:调用方式、参数传递方式,…
简单工厂模式,又叫做静态工厂方法模式。简单工厂模式的实质,就是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类的实例。简单工厂模式主要有三个角色:1、工厂角色它是工厂模式的核心,负责实现创建对象的内部逻辑,…
同为脚本语言,Python 和 JavaScript 在变量作用域方面有一些相似的地方。不像 PHP,函数内部的变量和外部变量基本是隔绝的,也就是说,函数如果需要处理外部的数据,通常需要通过参数把数据传递进来。(这里暂时不讨论…
观察者模式(有时又被称为发布/订阅模式)是软件设计模式的一种。在这种模式中,一个目标对象管理所有依赖于它的观察者对象,并且在自身状态发生改变时主动通知这些观察者。这通常通过调用各观察者所提供的方法来实现。观察者模式通常也被用来实现事件处理系…
前一段时间在编写一段 JS 代码时遇到了这样的问题。在同一个父元素下面有很多相同的 li 元素,我需要遍历这些元素,并给每个 li 都添加一个 click 事件,用来显示当前 li 元素在父元素中的顺序。代码是这样的: 0 1 2 3 4…
提示:本文写于 2013 年,文中涉及的图片加载方式、浏览器行为及代码均基于当时的 Web 开发环境,请结合文章发布时间阅读。在一些图片搜索网站,比如 Google,我们经常可以看到这样的效果:当我们搜索并查看一张图片时,…
什么是单例模式?先来看一下维基百科的解释:单例模式,也叫单子模式,是一种常用的软件设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个全局对象,这样有利于我们协调系统整体的行为。…
提示:本文写于 2013 年,文中涉及的事件模型、浏览器兼容处理及代码均基于当时的 Web 开发环境,请结合文章发布时间阅读。问题是这样的。前一段时间需要做一个二级菜单,为了保证浏览器的兼容性,需要使用 mouseover 和…
进度条在 Windows 系统中非常常见,例如一些软件的安装、部署过程都会显示进度条。它能够告诉用户系统正在正常运行,而不是已经卡死,从而避免用户因为长时间没有反馈而进行错误操作,提高用户体验。在 Web 中,我们同样可能遇到前台和服务器之…