如何解析并模拟JavaScript中的new操作符原理?

更新于
2026-09-27 01:59:36
0阅读来源:SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计860个文字,预计阅读时间需要4分钟。

如何解析并模拟JavaScript中的new操作符原理?

new是JavaScript中的一个关键字,用于将函数实例化为对象。例子:function Animal(name) { this.name=name; } Animal.prototype.sayName=function() { console.log('I\'m ' + this.name); }; var cat=new Animal('Tom'); console.log(cat.sayName());

new是JS中的一个关键字,用来将构造函数实例化的一个运算符。例子:

function Animal(name) { this.name = name; } Animal.prototype.sayName = function() { console.log("I'm " + this.name); } var cat = new Animal('Tom'); console.log(cat.name); // Tom console.log(cat.__proto__ === Animal.prototype); // true cat.sayName(); // I'm Tom

从上面的例子可以得出两点结论:

  • new操作符实例化了一个对象;
  • 这个对象可以访问构造函数的属性;
  • 这个对象可以访问构造函数原型上的属性;
  • 对象的**__proto__**属性指向了构造函数的原型;

由于new是关键字,我们只能去声明一个函数去实现new的功能,首先实现上面的三个特性,第一版代码如下:

附:对原型原型链不熟悉的可以先看理解Javascript的原型和原型链。

阅读全文

本文共计860个文字,预计阅读时间需要4分钟。

如何解析并模拟JavaScript中的new操作符原理?

new是JavaScript中的一个关键字,用于将函数实例化为对象。例子:function Animal(name) { this.name=name; } Animal.prototype.sayName=function() { console.log('I\'m ' + this.name); }; var cat=new Animal('Tom'); console.log(cat.sayName());

new是JS中的一个关键字,用来将构造函数实例化的一个运算符。例子:

function Animal(name) { this.name = name; } Animal.prototype.sayName = function() { console.log("I'm " + this.name); } var cat = new Animal('Tom'); console.log(cat.name); // Tom console.log(cat.__proto__ === Animal.prototype); // true cat.sayName(); // I'm Tom

从上面的例子可以得出两点结论:

  • new操作符实例化了一个对象;
  • 这个对象可以访问构造函数的属性;
  • 这个对象可以访问构造函数原型上的属性;
  • 对象的**__proto__**属性指向了构造函数的原型;

由于new是关键字,我们只能去声明一个函数去实现new的功能,首先实现上面的三个特性,第一版代码如下:

附:对原型原型链不熟悉的可以先看理解Javascript的原型和原型链。

阅读全文