我有一个代码如下:
function Cell(center) {
this.center_cell = center;
calc_neighbours = function() {
var points = this.center_cell;
console.log(points); // displays undefined
};
this.get_neighbours = function() {
return calc_neighbours();
};
}
var c_points = new Array(8,2);
var cell = new Cell(c_points);
cell.get_neighbours();
放置上述代码后,函数cell.get_neighbours()
显示未定义。
现在,如果我稍作更改并具有以下列出的代码,则函数会显示这些值。为什么会发生这种情况是因为 javascript 的 object 属性中的函数范围或变量范围。
这是显示值的代码:
function Cell(center) {
this.center_cell = center;
this.calc_neighbours = function() {
var points = this.center_cell;
console.log(points); // displays undefined
};
this.get_neighbours = function() {
return this.calc_neighbours();
};
}
我没有对函数用法进行任何更改。IE
var c_points = new Array(8,2);
var cell = new Cell(c_points);
cell.get_neighbours();