我使用Object.create()方法创建了一个Shape实例,并尝试按如下方式访问Shape的属性,但继承的属性变为undefined
:
function Shape(){
this.x = 10;
this.y = 20;
}
var rectangle = Object.create(Shape);
console.log(rectangle.x) // undefined
答案 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