liudong
2023-05-29 340f156319b863525e50e900c58e59b86ecb3d5e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var isObject = require('./isObject.js');
var _setup = require('./_setup.js');
 
// Create a naked function reference for surrogate-prototype-swapping.
function ctor() {
  return function(){};
}
 
// An internal function for creating a new object that inherits from another.
function baseCreate(prototype) {
  if (!isObject(prototype)) return {};
  if (_setup.nativeCreate) return _setup.nativeCreate(prototype);
  var Ctor = ctor();
  Ctor.prototype = prototype;
  var result = new Ctor;
  Ctor.prototype = null;
  return result;
}
 
module.exports = baseCreate;