我有以下小提琴:basic js class当我尝试throw 'error'
或代码示例中注释掉的行时,throw AS.Exception.message('Test Error message')
控制台回来说它未定义(它是扔)。而且我都喜欢......不,不是 - 除非我使用它错了。
另外 - 另一个问题是AS.Class
正在使用$.extend()
method 将两个或多个对象的内容合并到第一个对象中。所以我应该能够做类似的事情:
throw self.message // var self = this;
但是,如果我尝试它,则表明该消息不存在或不是函数,如果$.extend()
合并两个对象,则方法message
应该在同一范围内。因此我不应该做AS.Exception.message
- 因为它被合并到这个新对象......
想法?
答案 0 :(得分:2)
你所拥有的只是一堆对象文字。这不是一个“阶级”。执行var self = this
时,它会在全局范围内执行,self
只保存对全局对象的引用(当然,它不具有message
属性)。
控制台回来说它未定义(它正在抛出)
throw
无法定义(无法定义)。它是一种语言结构,而不是参考。我想你的意思是你正在抛出价值undefined
。原因是你调用的函数没有返回任何东西(所以它隐式返回undefined
)。你实际拥有的是:
AS.Class = $.extend(AS.Exception, {
throwError: function(){
throw undefined;
}
});
答案 1 :(得分:0)
.message()
方法返回undefined
。这就是抛出的东西。