js的new操作符
2024-10-17 21:24:23
1、创建一个空对象,并且 this 变量引用该对象,同时还继承了该函数的原型。
2、属性和方法被加入到 this 引用的对象中。
3、新创建的对象由 this 所引用,并且最后隐式的返回 this 。
var Person = function(name){
//var this = {};
this.name = name;
this.say = function(){
return "I am " + this.name;
};
//return this;
}
简单理解就是:
var obj = new Base();
相当于运行以下代码
new操作符具体干了什么呢?其实很简单,就干了三件事情。
var obj = {};
obj.__proto__ = Base.prototype;
Base.call(obj);
第一行,我们创建了一个空对象obj
第二行,我们将这个空对象的__proto__成员指向了Base函数对象prototype成员对象
第三行,我们将Base函数对象的this指针替换成obj,然后再调用Base函数,于是我们就给obj对象赋值了一个id成员变量,这个成员变量的值是”base”
最新文章
- Java程序设计之合租房synchronized(二)
- W7无法更新
- IntelliJ IDEA 12.0 +Maven 初使用 - WEB项目的建立
- Wiki设置
- linux 学习1
- 每天一个linux命令(56):netstat命令
- Swift - 懒加载(lazy initialization)
- for memory long term update
- 小鱼提问1 类中嵌套public修饰的枚举,外部访问的时候却只能Class.Enum这样访问,这是为何?
- Date对象需要注意的点
- Web后台快速开发框架
- mysql5.7安装(正确安装)实战
- (二 -2) 天猫精灵接入Home Assistant-自动发现Mqtt设备
- angular 使用dialog的经验
- html 简单的table样式
- C语言20150620
- RHCE-EXAM 模拟题目
- linux的操作
- Binary Tree Level Order Traversal&;&;II
- Caffe2——C++ 预测(predict)Demo
热门文章
- iOS利用响应链机制点击tableview空白处关闭键盘-可以作为参考
- Python中的Warnings模块忽略告警信息
- runAllManagedModulesForAllRequests 和 invalid url
- Babelfish
- Android Wear开发 - 数据通讯 - 第零节 : 打包Wear应用(手机和手表应用如何连接)
- Struts2 实现分页
- Struts2 文件上传,下载,删除
- 转:阿里旺旺导致python安装包失败的解决办法
- Code (组合数)
- Ubuntu 12.04 使用Eclipse搭建C/C++编译环境