0

我想为我的插件定义默认值,这是 javascript 代码:

var opts = {
    'width': 957,
    'height': 590,
    'left': ($(window).width() / 2) - (this.width),
    'top': ($(window).height() / 2) - (this.height)
};​

opts.left返回NaN。什么是问题?

编辑:我想在我的对象中使用我的对象的宽度。

4

2 回答 2

0

this.width不是数值。

NaN 值的来源

当算术运算导致未定义或不可表示的值时,将生成 NaN 值。这些值不一定代表溢出条件。NaN 还源于对没有原始数值可用的非数值的数值的尝试强制转换。


根据评论更新:

this不是对象,它是函数的调用者。所以this.width不会给你width财产的。

工作现场演示

于 2012-04-16T21:19:40.723 回答
0

最有可能的this.width是返回undefined一个非数字值。

例如: 100 - undefined将返回您NaN

尝试使用$(this).width()and $(this).height(),

var opts= {
      'width': 957,
      'height': 590,
      'left': ($(window).width()/2)-($(this).width()),
      'top':  ($(window).height()/2)-($(this).height())
};

以上内容应this在有效上下文中提供。

于 2012-04-16T21:20:27.043 回答