JavaScript 类型的包装对象(Typed Wrappers)_js面向对象

例如:

new Boolean(false)

会返回一个对象,该对象有一个 valueOf 方法会返回被包装的值。这其实完全没有必要,并且有时还令人困惑。不要使用 new Boolean、 new Number 或 new String。

此外也请避免使用 new Object 和 new Array。可使用 {} 和 [] 来代替。

--------------------------------------------------------------------------------

JavaScript has a set of typed wrappers. For example:

new Boolean(false)produces an object that has a valueOf method that returns the wrapped value. This turns out to be completely unnecessary and occasionally confusing. Don't use new Boolean or new Number or new String.

Also avoid new Object and new Array. Use {} and [] instead.

原文:http://demon.tw/programming/javascript-typed-wrappers.html

时间: 2024-08-01 22:17:03

JavaScript 类型的包装对象(Typed Wrappers)_js面向对象的相关文章

JavaScript中的包装对象介绍_javascript技巧

javascript对象是一种复合值,它是属性或已命名的值的集合,通过符号"."来引用属性值,当属性值是一个函数的时候,我们称之为方法.我们看到字符串也具有属性和方法: 复制代码 代码如下: var s="hello,world!"; var word=s.substring(s.indexof("")+1,s.length); 字符串既然不是对象,为什么它又有属性呢,只要引用了字符串s的属性,javascript就会将字符串值通过调用new S

javascript 面向对象编程 聊聊对象的事_js面向对象

先看一下JSON(javascript object notation)对象,JSON是一种脚本操作时常用的数据交换格式对象,相对于XML来说JSON是一种比较轻量级的格式,在一些intelligence的IDE中还可以方便的通过点操作JSON对象中的成员.       JSON是一种键/值对方式来描述内部成员的格式,其内部成员可以是几乎任何一种类型的对象,当然也可以是方法.类.数组,也可以是另外一个JSON对象. var student = { Name: "张三", Age: 20

Javascript 对象的解释_js面向对象

所有的构造器都是对象,而并非所有的对象都是构造器.每个构造器都有一个用来实现原型继承.共享属性的Prototype属性.对象通过new 表达式创建:比如,new String("A String") 创建了一个String对象.没有通过new而直接调用构造器将有返回值,返回的类型将取决于构造器.例如String("A String")产生一个原始的类型的字符串而不是一个对象. ECMAScript支持基于原型的继承.每个构造器都有一个与之关联的原型,而且通过此构造器

JavaScript 继承详解(一)_js面向对象

面向对象与基于对象 几乎每个开发人员都有面向对象语言(比如C++.C#.Java)的开发经验. 在传统面向对象的语言中,有两个非常重要的概念 - 类和实例. 类定义了一类事物公共的行为和方法:而实例则是类的一个具体实现. 我们还知道,面向对象编程有三个重要的概念 - 封装.继承和多态. 但是在JavaScript的世界中,所有的这一切特性似乎都不存在. 因为JavaScript本身不是面向对象的语言,而是基于对象的语言. 这里面就有一些有趣的特性,比如JavaScript中所有事物都是对象, 包

javascript类继承机制的原理分析_js面向对象

目前 javascript的实现继承方式并不是通过"extend"关键字来实现的,而是通过 constructor function和prototype属性来实现继承.首先我们创建一个animal 类 js 代码 复制代码 代码如下: var animal = function (){ //这就是constructor function 了 this .name = 'pipi'; this .age = 10; this .height = 0; } //建立一个动物的实例 var

JavaScript 继承详解(二)_js面向对象

this this表示当前对象,如果在全局作用范围内使用this,则指代当前页面对象window: 如果在函数中使用this,则this指代什么是根据运行时此函数在什么对象上被调用. 我们还可以使用apply和call两个全局方法来改变函数中this的具体指向. 先看一个在全局作用范围内使用this的例子: <script type="text/javascript"> console.log(this === window); // true console.log(wi

javascript Base类 包含基本的方法_js面向对象

复制代码 代码如下: <script type="text/javascript"> function Base(){} //根抽象类 Base.toBase=function(){ //将一个对象转化成Base类的实例的方法 return new Base(); } Base.inherit=function(parent){ //用于继承Base类的实例的方法 var F=function(){} F.prototype=parent; return new F; }

JavaScript 继承详解(三)_js面向对象

注:本章中的jClass的实现参考了Simple JavaScript Inheritance的做法. 首先让我们来回顾一下第一章中介绍的例子: function Person(name) { this.name = name; } Person.prototype = { getName: function() { return this.name; } } function Employee(name, employeeID) { this.name = name; this.employe

JavaScript 继承详解(四)_js面向对象

Classical Inheritance in JavaScript. Crockford是JavaScript开发社区最知名的权威,是JSON.JSLint.JSMin和ADSafe之父,是<JavaScript: The Good Parts>的作者. 现在是Yahoo的资深JavaScript架构师,参与YUI的设计开发. 这里有一篇文章详细介绍了Crockford的生平和著作. 当然Crockford也是我等小辈崇拜的对象. 调用方式 首先让我们看下使用Crockford式继承的调用