javascript中什么是实例化

javascript中什么是实例化

阅读 2.8k
3 个回答

我理解的实例化有两种:

  1. var Vehicle = function () {
      this.price = 1000;
    };
    var v = new Vehicle();
    v.price // 1000

    首先 要知道 new 的作用,就是执行构造函数,返回一个实例对象。
    上述代码 让构造函数Vehicle生成一个实例对象,保存在变量v中。

  2.  var person1 = {
       name: '张三',
       age: 38,
       greeting: function() {
         console.log('Hi! I\'m ' + this.name + '.');
       }
     };
     var person2 = Object.create(person1);
     person2.name // 张三
     person2.greeting() // Hi! I'm 张三.

    上面代码中,对象person1是person2的模板,后者继承了前者的属性和方法
    构造函数作为模板,可以生成实例对象。但是,有时只能拿到实例对象,而该对象根本就不是由构造函数生成的,这时可以使用Object.create()方法,直接以某个实例对象作为模板,生成一个新的实例对象。

对定义的类来说,new 操作会实例化。
其实所谓的实例化,对类对象来说就是有了独立的存储空间来存储对象属性而已。

new实例的过程如下:
function A(){}
A.prototype = {}
var a = new A();
new的时候其实有以下几个步骤:
step1:var a = new Object;
step2: a.__proto = A.prototype;
step3: A.call(a);
step4: return a;

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题