如何使用Object.create()

时间:2018-04-30 03:34:38

标签: javascript

我使用Object.create()方法创建了一个Shape实例,并尝试按如下方式访问Shape的属性,但继承的属性变为undefined

    function Shape(){
      this.x = 10;
      this.y = 20;
    }

    var rectangle = Object.create(Shape);

    console.log(rectangle.x) // undefined 

2 个答案:

答案 0 :(得分:2)

要创建构造函数的实例,请使用new

var rectangle = new Shape()

答案 1 :(得分:0)

虽然函数是js中的第一类对象,但可以将shape声明为对象而不是function。在此对象中创建一个函数,并从此函数返回所需的值



var shape = {
  userProperty: function(x, y) {
    this.x = x || 10; // if no value of x is passed it will be 10
    this.y = y || 10; // if no value of y is passed it will be 10
    return {
      x: this.x,
      y: this.y
    }
  }
}
var rectangle = Object.create(shape);
console.log(rectangle.userProperty(40).x) // 40