美文网首页
关键字new能做的事情

关键字new能做的事情

作者: 凉城十月 | 来源:发表于2020-09-05 22:17 被阅读0次

方方写的new的解析
这篇文章基于上述链接。

关键字new能做两件事情,
1.添加自有属性
2.添加共有属性

function 士兵(id){
  //var temp = {} //1
  //this = temp //2
  //士兵.prototype = {constructor: 士兵 } //直接赋值会覆盖原有的值
  //this.__proto__ = 士兵.prototype //3
  this.ID =id, //ID不能重复
  this.生命值 = 42//自有属性
  //实际工作中不要这样写,因为__proto__不是标准属性
  //return this //4
  //语法糖
}

士兵.prototype = {
   //共有属性
  兵种: "美国大兵",
  攻击力: 5,
  行走: function(){/*走俩步的代码*/},
  ……
}

以上代码被 //掉的代码都是内部已经帮你实现的代码,可以省略不写的

【注意一个点】
//士兵.prototype = {constructor: 士兵 }//直接赋值会覆盖原有的值
有两种方法解决:
1.在 士兵.prototype的对象中重新赋值,添加 constructor: 士兵
2.不将 士兵.prototype直接赋值,选择添加。
士兵.prototype.兵种 = “美国大兵”
第二种方式会麻烦一点,但是不会不小心覆盖其他的属性,推荐使用。

例如:

  1. var object = new Object()
    自有属性:空
    共有属性:
object.proto === Object.prototype
  1. var array = new Array('a','b','c')
    自有属性:0:'a' 1:'b' 2:'c',length:3
    共有属性:
array.proto === Array.prototype
Array.prototype.proto === Object.prototype
  1. var fn = new Function('x', 'y', 'return x+y')
    自有属性 :length:2, 不可见的函数体:'return x+y'
    共有属性:
fn.proto === Function.prototype
Array is a function
Array = function(){...}
Array.proto === Function.prototype

相关文章

  • 关键字new能做的事情

    方方写的new的解析这篇文章基于上述链接。 关键字new能做两件事情,1.添加自有属性2.添加共有属性 以上代码被...

  • new操作符干了什么?

    我们可以一起通过代码实现来看看new关键字到底做了一些什么事情 输出结果如下图: 上例中,new关键字调用的构造函...

  • 源码角度分析 new Vue 会发生什么

    从入口代码开始分析,new Vue 背后发生了哪些事情。 new 关键字在 JavaScript 中代表实例化一个...

  • C++中new、operator new和placement n

    1. new (1)C++对象实例化的时候使用new关键字和不使用new关键字的区别 使用new是动态分配内存,这...

  • JavaScript new 关键字

    new 关键字 在JavaScript中, new 关键字用来创建一个类(模拟类)的实例对象。 实例化对象之后, ...

  • Java中创建对象的四种方式

    使用new关键字创建对象 使用new关键字创建对象是最常见的一种方式,但是使用new创建对象会增加耦合度。在开发中...

  • js学习札记-new关键字

    js 的new关键字解析的过程中引擎执行了很多步骤,我们可以自己写一个仿new的函数来实现new关键字。 说js ...

  • Java中生成实列

    1.new 一般我们使用Java关键字new生成实例。 Something obj=new Something()...

  • java中的构造方法

    构造器 构造方法 Constructor 构造器的作用:1、创建对象,必须和new关键字一起使用。new关键字的作...

  • js基础-new关键字

    js 的new关键字解析的过程中引擎执行了很多步骤,我们可以自己写一个仿new的函数来实现new关键字。 js n...

网友评论

      本文标题:关键字new能做的事情

      本文链接:https://www.haomeiwen.com/subject/mlgajktx.html