Javascript数组作为原型(不是array.prototype)

时间:2014-02-23 14:25:46

标签: javascript

在蛇游戏中,

var snake;
snake.prototype.test = [];
snake.test.push(1);
console.log(snake.test[0]);

这不会在控制台中返回1,任何人都知道为什么?有人可以帮忙吗?

3 个答案:

答案 0 :(得分:2)

原型来自构造函数。这显示了实例如何访问原型成员。

// create a constructor function
var Snake = function () {};

// add to the prototype of Snake
Snake.prototype.test = [];

// create a new instance of a Snake
var aSnake = new Snake();

// aSnake has access to test through the prototype chain
aSnake.test.push(1);
console.log(aSnake.test[0]);

// so do other snakes
var anotherSnake = new Snake();
console.log(anotherSnake.test[0]);

参考

答案 1 :(得分:1)

您可以创建一个简单的对象:

var snake = {
    test: []
};

snake.test.push(1);
console.log(snake.test[0]);

谢:D

答案 2 :(得分:0)

在您的示例中,snake不是构造函数,也没有创建新实例。

如果您想继续沿着这条路走下去,您可能想要阅读面向对象的JavaScript。但是现在,创建单个对象实例不是更简单吗?

var snake = {};
snake.test = [];
snake.test.push(1);
console.log(snake.test[0]);