js new关键字
来源:互联网 发布:安装解压版mysql步骤 编辑:程序博客网 时间:2024/05/31 19:49
创建具备特定类型的对象可以通过使用new关键字用构造函数模式来完成。
function Emp(){
this.name="Ray";
}
var p = new Emp();
在这个过程中,相当于以Emp()为“模版”创建了一个新对象p,它具备Emp构造器中的成员变量和构造器原型。并且Emp将this设置为p
过程模拟:
var p = {};
Emp.apply(p);
p.__proto__=Emp.prototype;
用new声明的对象才能有Emp的属性。(通过this定义的)
例如 var q = Emp();
q === "undefined"
这是因为函数默认返回值是undefined,所以如果函数中没有return的话,则返回undefined.
在调用构造函数的过程中会经历以下4个步骤:
?
①创建一个新对象
②将构造函数的作用域赋给新对象(因此this指向这个新对象)
③执行构造函数中的代码(为这个新对象添加属性)
④返回新对象
接下来说说构造函数里包含return的情况
//构造函数在没有指定返回值的情况下,默认会返回新对象实例。
//如果指定的返回值是基本数据类型的话,仍然会返回新对象实例。
function A(){
this.x=3;
return "OK";
}
var a = new A();
a instanceof A === true;
"x" in a === true
如果指定返回对象了的话,被返回的对象就成了指定的对象值。在这种情况下,this值所引用的对象就被丢弃了。
function B(){
this.x=3;
return Object("OK");
}
var b = new B();
"x" in b === false
b instanceof B === false
b instanceof String === true
- js new关键字
- js new关键字详解
- 关键字new
- 关键字 NEW
- New 关键字
- new关键字
- 关键字new
- new关键字
- JS作用域与new关键字——长期更新
- operator new()、placement new()与new关键字
- new关键字和delete关键字
- js new
- js new
- C# - new关键字小结
- C++关键字new学习
- C++关键字new学习
- new关键字总结
- c# new 关键字
- magento给order的incrementID加前缀
- 慧都UPMS通用用户权限系统——如何实现用户跨系统
- 约瑟夫环的递归实现
- android 下的广播
- Mybatis 在CS程序中的应用
- js new关键字
- mysql命令行操作
- 微软揭示了WindowsServer 2012 R2,SystemCenter 2012 R2,SQLServer 2014
- task_struct 解析(五) 进程关系
- mtd交叉编译
- .Net Introp Excel相关
- android 多个Activity 传递参数
- new Google Maps APPI v2 与旧版本的区别
- 如何用Linux连接Windows的远程桌面呢?