javascript 对象初探(二)--- 返回对象的函数

了使用new操作符调用构造函数以外,我们也可以抛开new操作符,只用一般函数来创建对象,这样就能执行某些预备工作,并已对象为返回值的函数。、

function her(){
    return {
        name : ‘Jon‘
    };
}

然后我们调用her()来生成对象:

var a = her();
a.name; // Jonconsole.log(a.constructor);// function Object(){}

实际上构造函数也是可以返回对象的,只不过this的值使用上将会有所不同。

function Her(){
   this.name = ‘Jon‘;
   return {
       sex : ‘nv‘
    }
}
var she = new Her();
she.name;  // undefined;
she.sex; // ‘nv‘

在这里,构造其函数不是返回包含属性name的this对象,而是返回包含属性sex的独立对象。但这也是在返回值是一个对象的前提下,如是一个非对象,照常会返回this.

关于对象是如何在构造函数内部被创建出来的,你可以这样理解:

function Her(){
   // var this = {};
    this.name = ‘Jon‘;
   // return this;
}
时间: 2024-10-01 15:31:17

javascript 对象初探(二)--- 返回对象的函数的相关文章

javascript对象初探(一)--- 构造器函数

我们可以通过构造器函数(简称构造函数)来创建对象: function Her(){ this.child = 'Jon'; } 为了使用该函数来创建对象,我们需要使用new操作符,例如: var she = new Hew(); she.child; // Jon 使用构造函数创建对象的好处就是她可以接受一些参数,下面我们就来修改一下上面的例子: function Her(name){ this.name = name; this.child = 'Jon; this.whoAreYou = f

javascript之DOM(二Document对象)

javascript通过Document类型来表示文档.在浏览器中document是HTMLDocument对象(继承自Document)的一个实例,表示整个html页面.而且在浏览器中document对象还是window对象的一个属性,因此可以作为全局属性来用 Document节点具有下列特征: nodeType=9 nodeName="#document" nodeValue=null parentNode=null ownerDocument=null 其子节点可以使Docume

读Secrets of the JavaScript Ninja(二)对象

面向对象和原型 理解原型 在JavaScript中,可通过原型实现继承.原型的概念很简单.每个对象都含有原型的引用,当查找属性时,若对象本身不具有该属性,则会查找原型上是否有该属性. 每个对象都可以有一个原型,每个对象的原型也可以拥有一个原型,以此类推,形成一个原型链.查找特定属性将会被委托在整个原型链上,只有当没有更多的原型可以进行查找时,才会停止查找. 对象构造器与原型 当用作为函数调用Ninja时,什么都不会做.在用new操作符时返回一个对象,并且设置了它的原型为Ninja,所以ninja

[Javascript] js的类和对象

类 graph LR 类-->构造函数 类-->prototype对象 类-->instanceof运算符 类-->constructor属性 类-->isPrototypeOf方法 类-->hasOwnProperty方法 类-->__proto__属性 类-->toString方法 类-->对象 对象 一切引用类型都是对象 console.log(typeof x); // undefined console.log(typeof 10); //

服务返回对象的设计

服务返回对象的设计 服务层的定义 本文中,服务层指暴露给其他进程调用的外部接口的集合. 英文单词含义 service:服务response:服务返回对象request:服务请求对象 服务调用模型 在同一个线程内,现代计算机语言一般会提供异常捕获(try-catch)机制,模型如图1 . 在这个模型中,response只需包含业务数据, 异常情况用异常捕获机制处理. ----------------- request / / response ------------> / service / -

JavaScript学习总结(二)——闭包、IIFE、apply、函数与对象

目录 一.闭包(Closure) 1.1.闭包相关的问题 1.2.理解闭包 二.对象 2.1.对象常量(字面量) 2.2.取值 2.3.枚举(遍历) 2.4.更新与添加 2.5.对象的原型 2.6.删除 2.7.封装 三.函数 3.1.参数对象 (arguments) 3.2.构造函数 3.3.函数调用 3.3.1.call 3.3.2.apply 3.3.3.caller 3.3.4.Callee 3.5.立即执行函数表达式 (IIFE) 3.5.1.匿名函数与匿名对象 3.5.2.函数与函数

javascript基础编程の变量、对象、数据类型及函数

在web标准中.网页由结构.表现形式和行为三个部分组成. 结构标准---->XHTML: 表现形式标准----->CSS: 行为标准----->javascript: javascript是一种专门设计用来给网页添加交互性的编程语言,最初由Netscape公司开发.最后提交给了欧洲计算机制造商协会(ECMA).    一.javascript特点: 1.javascript是一门解释型语言,这意味着javascript代码不须要预先编译就能够运行. 2.javascript不能脱离浏览器

浅析JavaScript中Function对象(二) 之 详解call&apply

函数是js中最复杂的一块内容,其中call() 和 apply()又是重灾区,初学者往往在这个坑里栽倒,这次来分析这2个函数对象的成员 一.函数的角色 在js的体系下,js有3种角色.分别是普通函数.构造器.对象. 1.普通函数 <script type="text/javascript"> function f1(){ console.log('这是个函数'); } </script> 这里声明的f1,它的角色就是个普通函数 2.构造器 <script

python--函数的返回值、函数参数的使用、名称空间与作用域、函数嵌套、函数对象

今天学习内容有函数的返回值.函数参数的使用.名称空间与作用域.函数嵌套. 下来我们一一查看. 函数的返回值 看几个栗子: def func(x): return x**2 y=func(10) print(y) def foo(): return None res=foo() print(res) def foo(): return{'a':1} res=foo() print(res['a']) def foo(): return {'a':1},1,'a',[1,2] res=foo() p