在使用JavaScript构建对象时,出于某种需求要使用prototype(原型定义)设计,
不过这种设计当中有一个讨厌的事情就是Array污染,比如这样定义:
Array.prototype.foo='foo';
这是一个典型的Array污染,因为所有的Array对象都会继承foo这个成员。这对于习惯用
for (var in [])
这样语法的是个灾难,虽然有方法可以避免,但是这个问题的麻烦还有很多。
现在介绍一种无污染的设计方法:
function array(){};
array.prototype=[];
array.prototype.slice=function(){return this.length;}
var a=new array;
alert('array.slice():'+a.slice());
alert('Array.slice():'+[1,2,3].slice(1));
function object(){};
object.prototype={};
object.prototype.foo=function(){return this.name;}
var o=new object;
o.name='name from new object';
alert('object.foo():'+o.foo());
alert('{foo:"foo"}.foo:'+({foo:"foo"}).foo);
就是这样了,如果你的代码有一些特殊的需要,也许这个方法会有所帮助。
分享到:
相关推荐
JavaScript程序设计教程是深入理解和掌握Web开发核心技术的重要学习资源,尤其对于前端开发人员而言,JavaScript是不可或缺的语言。本教程以项目式教学法展开,旨在帮助学习者通过实践操作来掌握JavaScript的基本...
JavaScript设计模式是编程实践中的一种重要思想,它提供了一套经过时间考验的最佳实践,用来解决常见的编程问题和提高代码的可维护性、可扩展性和可复用性。在JavaScript这种动态类型的脚本语言中,设计模式尤其重要...
"函数式编程"也是JavaScript设计模式中的一个重要概念,它鼓励使用无副作用的纯函数和高阶函数,减少代码耦合,提高可读性和可测试性。"柯里化"和"偏函数"是函数式编程中的两种技术,它们可以提升函数的灵活性和重用...
- **变量定义**:JavaScript允许隐式定义变量,即在使用前无需显式声明,但推荐使用`var`、`let`或`const`进行声明,以避免全局变量污染。 - **类型转换**:JavaScript支持自动类型转换,例如数字和字符串之间的转换...
6. Mixins(混合):通过组合多个组件,实现代码复用,尤其在没有类的JavaScript中,是一种重要的面向对象设计模式。 总结,JavaScript从基础到高级,再到面向对象的深入学习,对于任何参与Web建设的IT人员来说都是...
这份"JavaScript学习帮助文档"是专为初学者设计的,旨在帮助他们掌握JavaScript的基础知识和实际应用技巧。 首先,JavaScript的基本语法是学习的起点。它是一种基于原型的、动态类型的、弱类型的脚本语言。这意味着...
2. 原型:每个JavaScript对象都有一个原型(prototype),原型链机制使得对象能继承其他对象的属性和方法。 3. 构造函数与实例化:通过构造函数可以创建具有特定属性和方法的对象实例。 三、闭包 闭包是...
同时,理解JavaScript的作用域和作用域链对于避免变量污染和提升代码质量至关重要。 对于jQuery,重点在于学习如何使用其选择器来选取元素,例如ID选择器、类选择器和属性选择器。还要掌握如何使用jQuery进行DOM...
9. **网页无障碍性**:强调在使用JavaScript和DOM时,如何考虑网页的无障碍性,使所有用户,包括残障人士,都能方便地使用。 10. **实例应用**:通过实际案例,演示如何将这些知识应用于网页设计和开发,如创建动态...
9. **AJAX与Fetch API**:用于后台数据的获取和更新,AJAX(异步JavaScript和XML)和Fetch API可以让前端与服务器进行无刷新通信,实现数据的动态加载和更新。 10. **错误处理**:良好的错误处理是项目稳定性的保障...
JavaScript 设计模式是一种在开发基于JavaScript的应用程序时,遵循的经过验证的最佳实践和解决常见问题的方法。这些模式有助于提高代码的可读性、可维护性和复用性,从而提升整个项目的质量。在JavaScript中,设计...
### JavaScript核心知识点详解 #### 一、JavaScript简介与特性 **JavaScript**,作为一...无论是基础数据类型的操作,还是面向对象编程的设计模式,JavaScript都提供了丰富的特性和机制,助力开发者实现创新与突破。
JavaScript是一种广泛应用于网页和网络应用的脚本语言,主要由网景公司的Brendan Eich在1995年设计并引入。它被设计用来增强用户的交互体验,通常与HTML和CSS一起使用,构建动态、交互式的网页。JavaScript运行在...
它的设计目标是使网页具有交互性、动态性和响应性,最初被命名为LiveScript,但后来为了与Sun Microsystems的Java语言相联系而改名为JavaScript,尽管两者在语法和用途上存在显著差异。 作为一门客户端编程语言,...
JavaScript 与Java虽然名字相似,但它们之间并无直接关系,JavaScript更加轻量级,主要应用于浏览器环境,处理DOM(文档对象模型)操作、事件处理、Ajax异步通信等。 手册中可能包括以下几个重要的JavaScript知识点...
5. **闭包和作用域**:在JavaScript中,合理使用闭包和作用域可以管理函数内部的状态,避免全局变量污染,确保游戏逻辑的正确性。 6. **数据结构与算法**:游戏逻辑往往需要处理各种数据,如得分、生命值等,合理的...
这本书可能是JavaScript初学者和进阶开发者提升技能的重要资源,尤其对于那些希望增强网页动态性和用户体验的设计师来说,具有很高的参考价值。 在JavaScript的世界里,特效并不仅仅是炫酷的动画,它们是提升网站...
Javali是一个专为创建现代JavaScript库设计的命令行工具,它借鉴了Create React App的成功模式,为开发者提供了一个快速启动JavaScript库开发的框架。与Create React App主要针对React应用程序不同,Javali关注的是...
在JavaScript中,可以使用闭包来实现单例,避免多次实例化,如全局变量污染和资源浪费。 2. **工厂模式**:抽象创建对象的过程,使得客户端不必关心具体创建哪个类的对象,只需调用工厂函数即可。JavaScript中的new...