(来源http://www.cnblogs.com/dongjc/p/5179561.html)

javascript是一种“基于prototype的面向对象语言“,与java有非常大的区别,无法通过类来创建对象。那么,既然是面象对象的,如何来创建对象呢?

一、通过”字面量“方式创建。

方法:将成员信息写到{}中,并赋值给一个变量,此时这个变量就是一个对象。
例如:  var person = (name:'dongjc', work:function() {console.log('write coding')});  
如果{}中为空,则将创建一个空对象:

 var person = {} //创建空对象 

演示代码:
1 <script type="text/javascript">
2 var person = {
3 name: "dongjc",
4 age: 32,
5 Introduce: function () { alert("My name is " + this.name + ".I'm " + this.age); }
6 };
7 person.Introduce();
8 </script>
 我们还可以给对象丰富成员信息。
  对象.成员名称 = 值;
  对象[成员名称] = 值;
也可以获取对象的成员信息。
  对象.成员名称;
  对象[成员名称];
1 <script type="text/javascript">
2 var person = {
3 name: "dongjc",
4 age: 32,
5 Introduce: function () { alert("My name is " + this.name + ".I'm " + this.age); }
6 };
7 person.worker = 'coding'; //丰富成员信息
8 </script>

二、通过”构造函数“方式创建。

 方法:

 var obj = new 函数名(); 

 这与通过类创建对象有本质的区别。通过该方法创建对象时,会自动执行该函数。这点类似于php通过创建对像时,会自动调用构造函数,因此该方法称为通过"构造函数“方式创建对象。

 1 <script type="text/javascript">
2 function Person() {
3 this.name = "dongjc"; //通过this关键字设置默认成员
4 var worker = 'coding'; //没有this关键字,对象创建后,该变量为非成员
5 this.age = 32;
6 this.Introduce = function () {
7 alert("My name is " + this.name + ".I'm " + this.age);
8 };
9 alert("My name is " + this.name + ".I'm " + this.age);
10 };
11 var person = new Person();
12 person.Introduce();
13 </script>

此代码一共会两次跳出对话框,原因在于创建对象是自动执行了该函数。

注意:this关键字的使用。这里的this与php中话法意思类似,指调用该函数的对象,这里指的是person。

三、通过object方式创建。

方法:先通过object构造器new一个对象,再往里丰富成员信息。

var obj = new Object();

实例代码:

1 <script type="text/javascript">
2 var person = new Object();
3 person.name = "dongjc";
4 person.age = 32;
5 person.Introduce = function () {
6 alert("My name is " + this.name + ".I'm " + this.age);
7 };
8 person.Introduce();
9 </script>

给构造函数(constructor)创建对象(object)的更多相关文章

  1. Constructor vs Object

    1. Constructor:是用于创建和初始化类中创建的一个对象的一种特殊方法. constructor([arguments]) { ... } 在一个类中只能有一个名为 “constructor ...

  2. javascript工厂模式和构造函数模式创建对象

    一.工厂模式 工厂模式是软件工程领域一种广为人知的设计模式,这种模式抽象了创建具体对象的过程(本书后面还将讨论其他设计模式及其在JavaScript 中的实现).考虑到在ECMAScript 中无法创 ...

  3. Js中Prototype、__proto__、Constructor、Object、Function关系介绍

    一. Prototype.__proto__与Object.Function关系介绍 Function.Object:都是Js自带的函数对象.prototype,每一个函数对象都有一个显式的proto ...

  4. Treflection01_Class对象_构造函数_创建对象

    1. package reflectionZ; import java.lang.reflect.Constructor; import java.util.List; public class Tr ...

  5. javascript工厂函数(factory function)vs构造函数(constructor function)

    如果你从其他语言转到javascript语言的开发,你会发现有很多让你晕掉的术语,其中工厂函数(factory function)和构造函数(constructor function)就是其中的一个. ...

  6. JavaScript---正则使用,日期Date的使用,Math的使用,JS面向对象(工厂模式,元模型创建对象,Object添加方法)

    JavaScript---正则使用,日期Date的使用,Math的使用,JS面向对象(工厂模式,元模型创建对象,Object添加方法) 一丶正则的用法 创建正则对象: 方式一: var reg=new ...

  7. 【转】Js中Prototype、__proto__、Constructor、Object、Function关系介绍

    一    Prototype.__proto__与Object.Function关系介绍        Function.Object:Js自带的函数对象.         prototype,每一个 ...

  8. sdk uncaught third Error Cannot assign to read only property 'constructor' of object '#<V>' (小程序)

    sdk uncaught third Error Cannot assign to read only property 'constructor' of object '#<V>' 在a ...

  9. ej3-1优先使用静态工厂方法而非构造函数来创建对象

    背景 很早之前就已经自己翻译了,先简单的贴出来,并做一下回顾. 条款1 优先使用静态工厂方法而非构造函数来创建对象 允许客户端创建一个实例的传统方法是:提供一个公共构造函数:有另外一个必须成为每个程序 ...

  10. 类(class)、构造函数(constructor)、原型(prototype)

    类 Class 类的概念应该是面向对象语言的一个特色,但是JavaScript并不像Java,C++等高级语言那样拥有正式的类,而是多数通过构造器以及原型方式来仿造实现.在讨论构造器和原型方法前,我可 ...

随机推荐

  1. VC++创建快捷方式、删除快捷方式、添加开始菜单程序组菜单并删除程序组菜单的实例

    转载:http://www.codefans.net/articles/1435.shtml 转载:http://www.cnblogs.com/morewindows/archive/2011/08 ...

  2. JavaScript:正则表达式 分组

    在现在的我看来,带小挂号的就是分组,嗯. 代码: var reg=/(abc)/; var str="abcdabcdeabcdef"; console.dir(reg.exec( ...

  3. Faster-RCNN-TensorFlow-Python3.5 在Ubuntu16.04下的配置方法

    目录 Faster-RCNN-TensorFlow-Python3.5 在Ubuntu16.04下的配置方法 安装过程 1. 深度学习环境Tensorflow的安装 2. 安装python包 3.   ...

  4. HDU 6125 Free from square(状态压缩+分组背包)

    http://acm.hdu.edu.cn/showproblem.php?pid=6125 题意: 在${1,2,3,...n}$的数中选择1~k个数,使得它们的乘积不能被平方数整除(1除外),计算 ...

  5. for循环,定时器,闭包混合一块的那点事。

    1,对于一个基本的for循环,顺序输出变量值. for(var i = 1; i < 4; i++){ console.log(i);//结果不多说了吧 } 2,如果for循环中有定时器,如下代 ...

  6. 下载liteide

    https://github.com/visualfc/liteide/releases/tag/x35.3

  7. ZC_C++类函数指针_模拟_Delphi类函数指针

    ZC: C++的类函数指针 不像 Delphi的类函数指针,前者 需要规定死 是哪个类的函数的指针,后者就不需要 很灵活. 测试环境: Win7x64 cn_visual_studio_2010_ul ...

  8. Vue.js 响应式原理

    1. Vue2.x 基于 Object.defineProperty 方法实现响应式(Vue3 将采用 Proxy) Object.defineProperty(obj, prop, descript ...

  9. OpenGL入门程序二:绘制简单的圆

    学习 绘制一个圆: ; const float Pi = 3.1415926536f; const float R = 0.5f; //绘制一个圆 void DrawCircle() { //绘制一个 ...

  10. PHP面向对象初中高级之由浅入深

    php面向对象编程基本实践:(了解类,类到对象的实例化,构造和析构,对象的引用); 类的概念: 物以类聚,把具有相似特性的对象对垒到一个类中 类定义了这些相似对象拥有的相同的属性和方法 类是相似对象的 ...