// test.js
// > node test.js
// define Edge
function Edge(x, y) {
this._x = x;
this._y = y;
};
Edge.prototype = {
get x(){ return this._x },
set x(val){ console.log('x is readonly') }, // 设置 x 为只读且无法更改
get y(){ return this._y },
set y(val){ console.log('y is readonly') }
};
Edge.prototype.showLocation = function() { return 'Location: (' + this._x + ', ' + this._y + ').' };
// use Edge
var eg = new Edge(23,23);
console.log(eg.x);
console.log(eg.y);
console.log(eg.showLocation()); // #=> Location: (23, 23).
eg.x = 30; // 测试能否被修改,期望不能被改
eg.y = 30;
console.log(eg.showLocation()); // #=> Location: (23, 23). 这是我想要的效果
eg.showLocation = function() { return 'I am joking' }; // 测试能否被修改,期望不能被改
console.log(eg.showLocation()); // #=> I am joking 这不是我想要的效果
请问如何让 eg.showLocation = function() { return 'I am joking' }; 这句 失效 即 让 函数不被覆盖 .. ?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.