Javascript 模拟 new
2017-05-07 11:10
211 查看
一、开始
同样我们先来看看new操作符为我们做了什么事情:
输出是:
![](https://images2015.cnblogs.com/blog/1115270/201705/1115270-20170507110222820-2013435678.png)
可以看到原型链的对象被继承下来了,定义在方法外的属性没有被继承下了,返回了一个新对象,可以传递参数
二、实现模拟
我们要做的是,返回一个新对象,吧原型链指向构造函数,传递参数
其实很多东西只要是知道了干什么的,再去实现起来就很有思路了
同样我们先来看看new操作符为我们做了什么事情:
function Person(name, sex){ this.hobby = 'shopping'; this.name = name; this.sex = sex; this.sayName = function(){ console.log(this.name) }; } Person.weight = '60kg'; Person.prototype.friend = 'rose'; var person = new Person('jack','age'); person.sayName();
输出是:
![](https://images2015.cnblogs.com/blog/1115270/201705/1115270-20170507110222820-2013435678.png)
可以看到原型链的对象被继承下来了,定义在方法外的属性没有被继承下了,返回了一个新对象,可以传递参数
二、实现模拟
我们要做的是,返回一个新对象,吧原型链指向构造函数,传递参数
function Create(){ var obj = {}; var Constructor = [].shift.call(arguments); obj.__proto__ = Constructor.prototype; Constructor.apply(obj,arguments); return obj; }; var person = Create(Person,'jack','age'); person.sayName();
其实很多东西只要是知道了干什么的,再去实现起来就很有思路了
相关文章推荐
- javascript中new的模拟实现
- JavaScript深入之new的模拟实现
- javascript 模拟Dreamweaver开发的纯文本查询器
- javascript模拟HashMap类
- 浅谈JavaScript中面向对象技术的模拟
- Javascript模拟FORM以POST方式提交表单数据
- [Web]JavaScript下利用setTimeout模拟多线程编程
- Javascript 利用键盘上的上下左右(回车)键模拟出tab 键的功能上下左右移动焦点
- javascript中模拟hashtable对数组进行快速查找
- javascript模拟抽奖
- 在Javascript中用command模式模拟多线程,包含注释
- JavaScript继承机制模拟实现
- 用javascript和CSS来做模拟网页中图片的圆角效果 [转]
- 通过javascript在IE模拟键盘输入
- 浅谈JavaScript中面向对象技术的模拟
- [JavaScript] 模拟生成GUID码
- 程序主菜单之javascript完全模拟
- JavaScript一点也不简单—实现“跨Frame的层模拟菜单”的方法(译文)
- javascript中模拟hashtable对数组进行快速查找
- 浅谈JavaScript中面向对象技术的模拟