zoukankan      html  css  js  c++  java
  • JS----new和object.create的区别

    参考学习:https://blog.csdn.net/blueblueskyhua/article/details/73135938
    https://www.cnblogs.com/94pm/p/9113434.html
    Object.create 和new
    1.Object.create的实现方式

    Object.create =  function (o) {
        var F = function () {};
        F.prototype = o;
        return new F();
    };
    

    可以看出来。Object.create是内部定义一个对象,并且让F.prototype对象 赋值为引进的对象/函数 o,并return出一个新的对象。

    2.**var o1 = new Base()**的时候new做了什么。

    JavaScript 实际上执行的是:

    var o1 = new Object();
    o1.[[Prototype]] = Base.prototype;
    Base.call(o1);
    

    new做法是新建一个obj对象o1,并且让o1的__proto__指向了Base.prototype对象。并且使用call 进行强转作用环境。从而实现了实例的创建。

       1. Object.create(o),如果o是一个构造函数,则采用这种方法来创建对像没有意义
       2.Object.create(o),如果o是一个字面量对象或实例对象,那么相当于是实现了对象
       的浅拷贝
    
  • 相关阅读:
    静态构造函数
    js-----Date对象
    JS中Math函数的常用方法
    js 简单数据类型和复杂数据类型的区别
    js new关键字 和 this详解
    JS 对象的三种创建方式
    js 预解析
    JS作用域问题
    js实现斐波那契数列
    JS 三元表达式
  • 原文地址:https://www.cnblogs.com/princeness/p/11664972.html
Copyright © 2011-2022 走看看