在线压缩 JavaScript ASP.NET控件源码查询 W3CHTML W3SCHOOL 开源中国 51aspx github codeproject SQLBACKUP几种排序算法比较SQL中deny权限 MSDN下载 HttpWebRequest类 HTML5stackoverflowASP.NET 页生命周期概述IIS 5.0 和 6.0 的 ASP.NET 应用程序生命周期概述[SQL Server]视图sys.sysprocesses brnshop学习 SQL视频Fiddler帮助文档Sprint.Net SQLServer牛人博客codeplexIIS官网 IE11 DeveloperJquery源码视频上Jquery源码视频下Jquery Bugs jquery.miaov.com正则表达式 Jquery API 1.9Service BrokerJavascript Object中的方法讲解Microsoft webcast微信开发接口 SVG教程 ECMAScript5UnderscoreJquery Bugs SQL存储过程事务嵌套 官网SQL事务锁 2345天气插件 Json数据查看 C++ jquery-plugin-validate 博学谷(传智播客) Swift视频 IOS代码论坛 SWIFT设计模式 操作系统下载 AngularJS VueJS ASPNETCORE前端题库Node.jsASPNETCORE腾讯课堂SwiftUISwiftUI疑问解答ADO.NETSMO数字化企业网Unicode码查询Redis使用文档

huaan011

 

Javascript中构造函数的返回值问题和new对象的过程

首先明确一点:javascript中构造函数是不需要有返回值的,这一点跟java很类似。可以认为构造函数和普通函数的最大差别就是:构造函数中没有return语句,普通函数可以有return语句;构造函数中会使用this关键字定义成员变量和成员方法,普通的函数不会使用this关键字定义成员变量和方法。

function Person(name,sex)
{
this.name = name;
this.sex = sex;
// return 1;
//return true;
//return "aty";
return {"returnValue":11};
}

//new关键字会被认为是创建对象
var aObj = new Person("11",1);
console.log(aObj.returnValue); //11
console.log(aObj.name); //undefined

  

 function Person(name,sex) 
		{  
		        this.name = name;
			this.sex = sex;
  			 return 1;
    			//return true;
    			//return "aty";
    			//return {"returnValue":11};
		}
 
		//new关键字会被认为是创建对象
		var aObj = new Person("11",1);
		console.log(aObj.returnValue); //undefined
		console.log(aObj.name); //11

  

构造函数不需要显示的返回值。使用new来创建对象(调用构造函数)时,如果return的是非对象(数字、字符串、布尔类型等)会忽而略返回值;如果return的是对象,则返回该对象。

下面简单介绍下,javascript中new对象的过程:如var myObj = newPerson(“aty”,25);

1.创建一个空的Object对象.var obj = new Object();

2.将构造函数Person中this指向刚创建的obj对象

3.将创建的obj的__proto__指向构造函数Person的prototype。这一步是建立对象和原型直接的对应关系。firefox下通过

对象的__proto__属性能够访问到原型,IE下则没有暴露出相应的属性。

4.执行构造函数Person()中的代码

posted on 2015-06-11 22:32  华安  阅读(3192)  评论(0编辑  收藏

导航

统计