通过函数添加到对象
Adding to an object through a function
我目前正试图通过函数添加到对象中。
我的代码是:
var ob = {};
function add(f, fun) {
ob[f] = fun();
}
add('hi', function() {
alert('hello')
})
ob.hi()
因此,假设将ob更改为:
var ob = {
hi: function(){
alert('hello')
}
}
它确实会提醒hello
,但只是从添加函数的触发(我想停止)开始,而不是从ob.hi()
函数开始。
谢谢你的帮助。如果你愿意,你也可以检查小提琴
您正在执行函数并将其返回值分配给属性。您需要将对函数的引用改为分配给属性。更改add
功能:
function add(f, fun) {
ob[f] = fun; //No invoking parentheses!
}
这是一把最新的小提琴。
如果你看一看你原来小提琴里的控制台,你会发现出了什么问题:
未捕获的类型错误:对象
#<Object>
的属性"hi"不是功能
将函数添加为对象的属性:
ob['hi'] = function() {
alert('hello')
};
或
ob[funname] = fun;
如果函数在其他地方定义。
不要为了设置属性而编写add
函数。用自定义setter替换语言的标准特性不会使代码更可读。
别忘了,您可以在javascript:中定义类
function Rect(x,y,w,h){
this.x = x;
this.y = y;
this.w = w;
this.h = h;
}
Rect.prototype.contains = function(x, y) {
return x>=this.x && x<=this.x+this.w && y>=this.y && y<=this.y+this.h;
};
创建为new Rect(0, 1, 2, 3)
的所有对象都具有contains
功能。
相关文章:
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- Meteor-将选定窗体中的对象添加到集合中
- 在play2框架中向json对象添加下拉列表项
- 如何在javascript上向数组的对象添加新元素
- JSON到对象数组,并向每个对象添加项
- 如何将一个对象添加到每个对象数组中
- 向Angular作用域对象添加对象数组——TypeError
- CoffeeScript将对象添加到数组中
- 如何从Addon SDK向选项卡对象添加进度侦听器
- 使用ja将对象添加到HTML画布中
- 向通过ReST JSON调用生成的Angular Javascript对象添加方法
- 将新对象添加到本地存储
- 为什么可以'我们在函数体中为函数对象添加属性,就像在javascript中为对象文字添加属性一样
- 使用游标循环将JS对象添加到数组中
- 向调用全局javascript函数的对象添加处理程序
- 将另一个文件中的对象添加到单独文件中的阵列中
- 将对象添加到数组中
- 为新对象添加函数,将对象添加到数组中.理解困难'这'关键字
- sequelize为找到的对象添加值
- 向对象添加新方法和值,同时避免重复