未使用返回值设置变量
Variable not being set with return value
class Person
constructor: (@name, @org, @phone, @email) ->
alert "#{name}: #{org} #{phone} #{email}"
__create = (title) ->
p =
name: ""
org: "_organization"
phone: "_phone"
email: "_email"
(p[pr] = "%#{title}#{p[pr]}%" for pr of p)
Person(p.name, p.org, p.phone, p.email)
m = __create "author"
alert m.name
这始终给我:
类型错误: 无法读取未定义的属性"名称">
但是,编译后的 JavaScript 明确地为m
赋值:
__create = function(title) {
var p, pr;
p = {
name: "",
org: "_organization",
phone: "_phone",
email: "_email"
};
for (pr in p) {
p[pr] = "%" + title + p[pr] + "%";
}
return Person(p.name, p.org, p.phone, p.email);
};
m = __create("author");
alert(m.name);
我在这里错过了什么?
您需要使用 new
运算符,例如
__create = (title) ->
p =
name: ""
org: "_organization"
phone: "_phone"
email: "_email"
(p[pr] = "%#{title}#{p[pr]}%" for pr of p)
new Person(p.name, p.org, p.phone, p.email)
http://coffeescript.org/#classes
相关文章:
- 如何在Bootstrap Modal中为动态点击生成的变量设置jade属性
- Javascript使用变量设置属性
- 敲除js变量设置类似于调用函数
- 使用输入变量设置元素的值
- 为什么我们将控制器变量设置为等于“0”;这个“;在角度上
- 将外部控制器的范围变量设置为角度
- 谷歌地图标记在通过变量设置标记和经度时不保持不变
- 尝试在 jquery ajax 帖子中将变量设置为URL 的一部分
- 如果循环中至少有一个元素返回 false,如何将变量设置为 false
- 如何将宽度和高度变量设置为浏览器窗口的宽度和高度
- 如何将变量设置为外部内容
- 需要将变量设置为特定的数字范围
- 执行批处理文件的Javascript,该文件包含基于每个会话的环境变量设置
- 如何在jquery中基于变量设置某个东西的宽度
- 将变量设置为等于本地JSON文件
- 根据Angular中的单独变量设置下拉默认值
- 如何使用JavaScript变量设置函数集css宽度
- 如何为一个javascript变量设置give多个值
- 如何将javascript变量设置为php变量并将其存储在数据库中
- 如何在javascript中为变量设置一行setter