1 Star 0 Fork 0

ByeWord/升入JavaScript学习日志

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
高阶函数之new.html 1003 Bytes
一键复制 编辑 原始数据 按行查看 历史
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script type="text/javascript">
function New(Constructor) {
// 创建空对象
var res = {}
// 将空对象的__proto__ 指向构造函数的prototype
if(Constructor.prototype !== null) {
res.__proto__ = Constructor.prototype
}
// 修改构造函数内部this的指向
let ret = Constructor.apply(res, Array.prototype.slice.call(arguments, 1))
// 构造函数有返回值的情况
if((typeof ret === 'object' || typeof ret === 'function') && ret !== null) {
return ret
}
// 返回对象
return res
}
function Person(name,age){
this.name = name
this.age = age
return this
}
Person.prototype.getName = function(){
return this.name
}
let person = New(Person,'WeChain',24)
let name = person.getName()
console.log(name)
</script>
</body>
</html>
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
JavaScript
1
https://gitee.com/ByeWord/JavaScriptLearning.git
git@gitee.com:ByeWord/JavaScriptLearning.git
ByeWord
JavaScriptLearning
升入JavaScript学习日志
master

搜索帮助