`

创建javascript对象的两种语法

阅读更多

创建javascript对象的两种语法

a.  new方法,这种方法对学习过OO语言的人来说太常见了。

不过,用这种方法创建对象的前提是,对象所属的类已经存在,比如:

function ClassA(){}

var objA = new ClassA();//如果之前没有定义ClassA类,则这句就要报错了。

b.  : 冒号法,这种方法比较特殊,因为javascript的动态性,我们可以通过这种方法动态地创建一个对象。(奇怪的是,有几个专门讲js的书里面竟然没有说到这种方法,可能因为它太怪异了吧)。举例如下:

var objB = {username:"me",password:"psw"}.

这句在解释运行时动态地筹建一个拥有username和password属性的objB对象。接下我们就可以通过,objB来引用username和password了:

var name = objB.username;

在这种方式中,我们还可以“命名属性”的方式来筹建对象,如:

var objC = {"prop1":"value1","prop2":"value2"};

这里动态创建一个拥有两个属性的js对象objC,该对象拥有两个属性,属性的名称分别叫prop1和prop2(请注意,她们是两个字符串)。在这个时候

我们就想是不是也通过 . 号来引用里面属性了,比如objC."prop1",这种方式?运行发现错误。

那么该怎么办呢?

通过,[] 运算符,如 :var pop = objC["prop1"]可以引用到objC对象里面的 value1。或者用var pop = objC.prop(注意,没有prop没有加引号)来引用。

或许有人会问说,这是我们知道属性命名的时候,我可以这样子做,那要是人家给我传一个对象我不知道名字那该怎么办呢?

别急...javascript里面不是有in运算符吗,in就是用来遍历js对象的属性的,所以可以这样做:

for(prop in objC)

{

 alert("propname:"+prop+"value is:"+objC[prop])

}

最后,请一定记住这话,js是动态的...

分享到:
评论

相关推荐

    html5入门到精通 视频教程

    JavaScript基础语法28_两种数据类型的内存对比 JavaScript基础语法29_数组的创建及使用 JavaScript基础语法30_数组常用方法 JavaScript基础语法31_数组的排序 JavaScript基础语法32_时间和日期 JavaScript基础语法33...

    javascript完全学习手册1 源码

    两种方式 168 7.3.2 RegExp对象的属性 170 7.3.3 RegExp对象的方法 173 7.4 String对象中与正则表达式 有关的方法 177 第8章 高级DOM技术 182 8.1 CSS样式 182 8.1.1 CSS语法 182 8.1.2 CSS属性 187 8.2 样式控制 ...

    javascript完全学习手册2 源码

    7.3.1 创建RegExp对象实例的两种方式 7.3.2 RegExp对象的属性 7.3.3 RegExp对象的方法 7.4 String对象中与正则表达式有关的方法 第8章 高级DoM技术 8.1 CSS样式 8.1.1 CSS语法 8.1.2 CSS属性 8.2 样式...

    Javascript中级语法快速入手

    Javascript是一种弱语言类型的语言,不必像Java、C#等高级语言那样必须通过构造函数的方法来创建对象,在Javascript中,主要有两种创建对象的方法,一种是直接通过new关键字定义,一种是通过函数来定义。如下: /...

    javascript学习笔记.docx

    f) 继承:只是在查询一个属性时自动发生,而不会在写属性时发生,就是说单写一个父类的属性时,JavaScript环境会为对象本身创建一个同名的属性,从此该属性就覆盖了父类中的属性。 12) 创建一个数组可用 new Array()...

    详解JavaScript正则表达式之RegExp对象

    一、RegExp对象概述  RegExp对象表示正则表达式,RegExp是正则表达式的缩写,它是对字符串执行模式...创建正则表达式和创建字符串类似,创建正则表达式有两种方式:  (1)使用字面量创建RegExp对象的语法:  /patter

    JavaScript笔记

    15.JavaScript中的所有事物都是对象,分为三类: |--简单对象:String、Number、Boolean |--组合对象:Array、Math、Date |--复杂对象:Function、Regex、Object等 16.Array排序: |--升序:function compare(a...

    javascript函数的解释

    68.JS中分为两种窗体输出:模态和非模态.window.showModaldialog(),window.showModeless() 69.状态栏文字的设置:window.status='文字',默认的状态栏文字设置:window.defaultStatus = '文字.'; 70.添加到收藏夹:...

    JavaScript_ES6_Advanced:JavaScript_thoery

    面向对象编程功能编程异步JavaScript 模组错误处理捕获,冒泡,事件委派JavaScript中的数据结构 JavaScript引擎JavaScript引擎是一种计算机程序,提供了可告诉计算机如何运行JavaScript代码。 引擎内部发生的事情取...

    JavaScript之引用类型介绍

    创建Object实例的方式有两种,第一种是使用new操作符后跟Object构造函数。 代码如下: var person = new Object(); person.name = “tt”; person.age = 12; 另一种方式是使用对象字面量表示法。 代码如下: var ...

    深入JavaScript高级程序设计之对象、数组(栈方法,队列方法,重排序方法,迭代方法)

    许多OO语言都支持两种继承方式:接口继承和实现继承。 接口继承只继承方法签名,而实现继承则继承实际的方法。 如其所述,由于函数没有签名,在ECMAScript中无法实现接口继承。 ECMAScript只支持实现继承,而且其...

    JS正则中的RegExp对象对象

    有两种方式可以创建RegExp对象的实例。 使用RegExp的显式构造函数,语法为:new RegExp(“pattern”[,”flags”])。 使用RegExp的隐式构造函数,采用纯文本格式:/pattern/[flags]。 pattern部分为要使用的正则...

    javascript入门笔记

    Javascript Basic 1、Javascript 概述(了解) Javascript,简称为 JS,是一款能够运行在 JS解释器/引擎 中的脚本语言 JS解释器/引擎 是JS的运行环境: 1、独立安装的JS解释器 - NodeJS 2、嵌入在浏览器中的JS...

    js面向对象的类旅行实验室v-000

    JS Classes旅行类目标使用类语法构造对象使用构造方法设置初始属性指示随着Scuber扩展其机队和服务,我们需要开发一种对驾驶员及其路线进行建模的方法。 在本实验中,您将使用类语法创建Driver类和Route类。 司机...

    107个常用javascript语句

    68.JS中分为两种窗体输出:模態和非模態.window.showModaldialog(),window.showModeless() 69.状態栏文字的设置:window.status='文字',默认的状態栏文字设置:window.defaultStatus = '文字.'; 70.添加到收藏夹:...

    Java语言基础下载

    创建线程的两种方式 179 线程的控制 180 实例分析 182 内容总结 189 独立实践 190 第十二章:高级I/O流 192 学习目标 192 I/O基础知识 193 字节流 193 字符流 194 节点流 194 过程流 194 基本字符流类 198 对象串行...

    javascript下利用数组缓存正则表达式的实现方法

    通常摆在我们眼前的如下两种选择来作为我们的容器,数组或对象。我这里选择前者,前者更轻量一点。下面我们就hasClass函数作性能改进。 原来的写法: 代码如下: var hasClass = function(ele,cls) { return ele....

    DWR.xml配置文件说明书(含源码)

    Creator可以配置类的成员函数的访问权限.creator有授权访问(指明可以被访问的方法)和拒绝访问(指明不允许访问的方法)两种配置方式. 如果要设置除了setWibble方法之外的所有方法都不可访问可以采用下面的设置. ...

    jQuery详细教程

    一. jQuery 语法实例 $(this).hide() 演示 jQuery hide() 函数,隐藏当前的 HTML 元素。 $("#test").hide() 演示 jQuery hide() 函数,隐藏 id="test" 的元素。 $("p").hide() 演示 jQuery hide() 函数,隐藏...

    福优林@Qt5小白变大牛初级篇word---第11章.pdf

    11.1 Qml简介 从 Qt 4.7 开始,Qt 引入了...QML提供了一个具有高可读性的类似JSON的声明式语法,并提供了必要的JavaScript语句和动态属性绑定的支持。 QML语言和引擎框架由Qt QML模块提供。 11.2 创建一个Qt Quick应用

Global site tag (gtag.js) - Google Analytics