javascript中构造函数的返回值问题和new对象的过程
2014-09-29 19:16
549 查看
首先明确一点:javascript中构造函数是不需要有返回值的,这一点跟java很类似。可以认为构造函数和普通函数的最大差别就是:构造函数中没有return语句,普通函数可以有return语句;构造函数中会使用this关键字定义成员变量和成员方法,普通的函数不会使用this关键字定义成员变量和方法。
构造函数不需要显示的返回值。使用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()中的代码
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); alert(aObj.returnValue);//11 alert(aObj.name);//undefined
构造函数不需要显示的返回值。使用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()中的代码
相关文章推荐
- Javascript中构造函数的返回值问题和new对象的过程
- javascript中构造函数的返回值问题和new对象的过程
- Javascript中构造函数的返回值问题和new对象的过程
- javascript中构造函数的返回值问题和new对象的过程
- avascript中构造函数的返回值问题和new对象的过程
- javascript 静态对象和构造函数的使用和公私问题
- javascript 静态对象和构造函数的使用和公私问题
- Self Summary: C++函数返回引用和指针的问题,局部对象与new对象的问题
- Hibernate查询,返回new对象(注意这个新定义的类要有构造函数),使用sql带条件分页查询并且把结果显示到一个对象的集里面的解决方案
- 浅谈JavaScript new对象的四个过程
- Self Summary: C++函数返回引用和指针的问题,局部对象与new对象的问题
- Self Summary: C++函数返回引用和指针的问题,局部对象与new对象的问题
- c++结构体中包含类对象成员的问题 malloc函数不能调用构造函数 new可以
- JavaScript之面向对象学习六原型模式创建对象的问题,组合使用构造函数模式和原型模式创建对象
- JavaScript 用new创建对象的过程
- javascript中new Date()对象和getTime()方法的问题(又是来提问,(-__-)b)
- 关于类中new对象与构造函数执行顺序的问题
- JavaScript--new创建对象的过程
- JavaScript 用new创建对象的过程
- js中构造函数创建对象加不加new的问题