文本标识法和定义变量差不多,像这样

var obj = {name:'HanMM','2':'Dali'};

函数构造器法 

先创建一个对象函数

function Obj() {

this.address='New York' ,

this.sayHello = function (){

return this.address;

}

}

然后用new关键字来穿件具体的对象

var obj001 = new Obj();

然后我们就可以调用对象了

obj.name//  HanMM

obj['2']//Dali

obj.sayHello();//New York

而如果,我们在使用构造器函数创建对象的时候忘了使用new关键字的话,像这样 var obj002=Obj();去实例化的话,其实和声明函数没有区别,由于该函数没有显式返回值,那么返回值为undefined,我们只是创建了一个函数,而非对象的实例。

当我们想访问其中的某个属性时得到的结果也只能是 Uncaught TypeError: Cannot read property 'address' of undefined

返回对象的函数 

function tom(Name) {

return { name: Name }

} ;

var obj007 = tom('王大锤') ;

obj007.name;//   王大锤

obj007.constructor;// ==>> function Object();

constructor property 构造器属性,其实就是一个指向于一个用于创建该对象的构造器函数的引用;

也就是说function TomG(){}; var obj004= new TomG();

obj004.constructor;// ==>> function TomG();

而如果使用文本标识法创建的对象var tomG = {};

tomG.constructor 相当于使用js内置构造器Objet()函数创建的,故 tomG.constructor; // ==>> function Object();

PS其实构造器函数也是可以返回对象的,且当且仅当构造器函数返回的是对象的时候才可以当做对象使用,若返回其他类型的数据则此时的对象是this,即window;

function Objs() {

this.address='New York' ;

return {  home:'London' }

}

var obj008 = new Objs();

typeof obj008.address;//undefined;

obj008.home;//London;

js创建对象的三种方法:文本标识法和构造器函数法和返回对象的函数的更多相关文章

  1. js创建对象的三种方法

    1.使用对象初始化器:{} var person = {....} 2 var person=new object() function person(参数) { this.参数=... } var ...

  2. Javascript 创建对象的三种方法及比较【转载+整理】

    https://developer.mozilla.org/zh-CN/docs/JavaScript/Guide/Inheritance_and_the_prototype_chain 本文内容 引 ...

  3. js创建对象的三种方式和js工厂模式创建对象

    文章地址: https://www.cnblogs.com/sandraryan/ 创建对象 创建对象的三种方式 构造函数 ,是一种特殊的方法.主要用来在创建对象时初始化对象 1. 调用系统的构造函数 ...

  4. OC和JS交互的三种方法

    看简书上说一共有六种OC和JS交互的方法,但是前三种原理都一致,都是通过检测.拦截Url地址实现互相调用的.剩下的react native等第三方框架原理不一样,也没有去研究,下边记录我使用的三种方法 ...

  5. js创建对象的三种方式

    <script> //创建对象的三种方式 // 1.利用对象字面量(传说中的大括号)创建对象 var obj1 = { uname: 'ash', age: 18, sex: " ...

  6. js 创建对象的几种方法

    1. 使用object创建 var person = new Object(); person.name = "Tom"; person.age = "29"; ...

  7. C++创建对象的三种方法

    我自己以前经常弄混 A a(1); 栈内存中分配 A b = A(1); 栈内存中分配,和第一种无本质区别 A c = new A(1); 堆内存中分配 前两种在函数体执行完毕之后会被释放,第三种需要 ...

  8. JavaScript创建对象的三种方法

    在 JavaScript 中我们知道无法通过类来创建对象,那么如何创建对象呢? (1)通过“字面量”方式创建对象 将你的信息写到{ }中,并赋值给一个变量,此时这个变量就是一个对象,例: var ga ...

  9. 判断点击第几个按钮JS代码的三种方法

    方法一:使用下标实现<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> < ...

随机推荐

  1. HDOJ/HDU 2561 第二小整数(水题~排序~)

    Problem Description 求n个整数中倒数第二小的数. 每一个整数都独立看成一个数,比如,有三个数分别是1,1,3,那么,第二小的数就是1. Input 输入包含多组测试数据. 输入的第 ...

  2. 折腾iPhone的生活——运营商信号显示数据化

    iOS7以后iphone的信号都是用5个小圆圈显示的,像这样 但是还有种显示方法可以用数字信号显示信号量,比较适合很专注于生活品质的人和对数字有偏爱的人,像这样: 这样还有个好处是可以节约顶部状态栏的 ...

  3. iOS不越狱装收费App——注册iOS设备为开发者工具

    额,这篇教程主要是我写下来用于总结注册iOS设备和用iResign安装App的过程,想要不越狱安装App当然有办法,但是有几个前提--你是一个Apple开发者,或者你有个朋友是App的开发者.如果没有 ...

  4. Python中With的用法

    在看Dive Into Python中有关描述文件读写那章节的时候,看到了有关with的用法,查阅下相关资料,记录下来,以备后用. 官方的reference上有关with statement是这样说的 ...

  5. Eclipse Maven Project

    http://www.cnblogs.com/candle806/p/3439469.html

  6. 10个经典的 Java main 方法面试题

    以下是笔者认为比较经典的关于Java main方法的面试题,与其说是Java面试题,其实也是Java的一些最基础知识问题,分享给大家,如有错误,请指出. 1.不用main方法如何定义一个类? 不行,没 ...

  7. hdoj 1342 Lotto【dfs】

    Lotto Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submi ...

  8. 基于TCP/IP的Matlab Modbus与M340 PLC通讯

    本人原创,代码拿出来供大家交流学习经验,勿作他用. 废话不多说,代码直接上. 1.创建链接 function link = connect_create(client_addr,port) %**** ...

  9. uva1620 Lazy Susan

    留坑(p.256) 什么找规律啊 坑爹 #include<cstdio> #include<cstring> #include<cstdlib> #include& ...

  10. usb转串口如何配置?

    概述 USB转串口输出,在kernel启动阶段加载相应的usb转串口芯片驱动,加载成功后,可通过usb转串口与pc机端交互. 步骤 1.  在kernel配置中选中usb转串口驱动: 2.  传给内核 ...