在JS中,new关键字做了什么

简介: 笔记

1. 先看代码


   function Person(){
        this.name = '朱小明';
        this.fn = function(){
            console.log('名字是:' + this.name)
        }
    }
    let person1 = new Person();
    // person1 拥有Person的属性和方法
    person1.fn()
  • 在这段代码里,通过new关键字创建了一个实例 person1
  • person1 继承了Person的所有属性和方法


2. 内部具体实现如下


// 1. 创建一个空对象
let obj = new Object(); // Object => 基类
// 2.设置它的原型链
obj._proto_ = Person.prototype;
// 3. 改变this指向
let result = Person.call(obj)
// 4.判断返回值类型
if(typeof (result) == "object"){
    person1 = result
}else{
    person1 = obj;
}
目录
打赏
0
0
0
0
8
分享
相关文章
ES6学习(9)js中的new实现
ES6学习(9)js中的new实现
ECMAScript 6(以下简称 ES6)的出现为 JavaScript 带来了许多新的特性和改进,其中 let 和 const 是两个非常重要的关键字。
ES6 引入了 `let` 和 `const` 关键字,为 JavaScript 的变量管理带来了革新。`let` 提供了块级作用域和暂存死区特性,避免变量污染,增强代码可读性和安全性;`const` 用于声明不可重新赋值的常量,但允许对象和数组的内部修改。两者在循环、函数内部及复杂项目中广泛应用,有助于实现不可变数据结构,提升代码质量。
105 5
js中new和object.creat区别
【10月更文挑战第29天】`new` 关键字和 `Object.create()` 方法在创建对象的方式、原型链继承、属性初始化以及适用场景等方面都存在差异。在实际开发中,需要根据具体的需求和设计模式来选择合适的方法来创建对象。
除了 async/await 关键字,还有哪些方式可以在 JavaScript 中实现异步编程?
【10月更文挑战第30天】这些异步编程方式在不同的场景和需求下各有优劣,开发者可以根据具体的项目情况选择合适的方式来实现异步编程,以达到高效、可读和易于维护的代码效果。
JavaScript 保留关键字
JavaScript 保留关键字
67 2
JavaScript this 关键字
JavaScript this 关键字
44 1

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问