javascript中构造函数的返回值问题和new对象的过程
首先明白一点:javascript中构造函数是不须要有返回值的,这一点跟java非常类似。能够觉得构造函数和普通函数的最大区别就是:构造函数中没有return语句。普通函数能够有return语句。构造函数中会使用thiskeyword定义成员变量和成员方法。普通的函数不会使用thiskeyword定义成员变量和方法。
function Person(name,sex) { this.name = name; this.sex = sex; //return 1; //return true; //return "aty"; return {"returnValue":11}; } //newkeyword会被觉得是创建对象 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()中的代码
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步