为什么var a没有定义?Javascript OOP
Why var a is undefined? Javascript OOP
我有这个代码。它创建了一个带有x和y字段的对象。我想添加一个方法,它创建带有额外宽度和高度字段的新对象。但尽管我尝试了,它仍然返回未定义。怎么了?
JSFiddle
function $ (x, y) {
this.x = x;
this.y = y;
return this;
}
$.prototype.$ = function (x, y) {
this.width = x - this.x;
this.height = y - this.y;
return this;
}
var a = $(10,10).$(30,30);
alert(a.width);
var a = (new $(10,10)).$(30,30); //You need new
alert(a.width);
另外,让类的实例函数与类的名称相同可能不是一个好主意——这有点令人困惑。
下面是你如何用2个"Point"对象做你想做的事情(正如在评论中所要求的):
var Point = (function(){
var Point = function(x, y) {
this.width = x;
this.height = y;
}
Point.prototype.removePoint = function(point) {
return new Point(point.width - this.width, point.height - this.height);
}
return Point;
})()
var a = new Point(10,10);
var b = new Point(30,30);
var c = a.removePoint(b);
alert(c.width);
小提琴:http://jsfiddle.net/maniator/d3fx7/
您在$
之前错过了new
;如此:
var a = new $(10,10).$(30,30);
相关文章:
- Javascript oop instances
- 将JavaScript oop代码翻译为Lua
- javascript OOP:到达对象内部的方法
- Javascript OOP-从函数返回一个值;s在对象内部's方法(嵌套函数)
- Javascript OOP-为什么这两个几乎完全相同的语句给出不同的输出
- javascript oop, instanceof and base class
- 调用Javascript OOP中的嵌套函数
- JavaScript OOP修复了这个范围
- Javascript OOP:通过输入将值传递给属性失败
- JavaScript OOP类和声明
- 类中的Javascript OOP变量
- Javascript OOP-在异步回调中丢失了这一点
- Javascript OOP 无法获取属性
- Javascript OOP 回调 “this” 适用
- Javascript OOP - 声明对象的方法
- Javascript OOP inheritance
- 如何将JavaScript OOP转换为函数式
- Javascript OOP 原型函数返回 undefined
- 我无法访问javascript oop模型中的另一个方法
- Javascript OOP - 继承和原型设计