【发布时间】:2014-02-16 14:16:07
【问题描述】:
我使用此设置向对象添加属性:
var obj = {
extend: function(key, obj){
this[key] = obj;
}
}
这很好用。但是,在某些情况下,我想将子对象添加为属性:
obj.extend('new', {
test: function(){
console.log('test called');
}
});
我想自动将在传递给obj.extend()的对象中发生的所有函数(作为第二个参数)包装在一个函数中,该函数本身将函数的实际调用包装在$(document).ready(function(){})中
我的做法是这样的:
extend: function(key, obj){
for(var prop in obj){
if(typeof prop == 'function') {
console.log(prop + ' is a function'
} else
console.log(prop + ' is NOT a function');
}
}
this[key] = obj;
}
但typeof prop 似乎返回string 而不是“功能”。我检查了各种文章和帖子,但方法:
typeof propertyOfObject == 'function'
似乎完全有效。
我在这里做错了什么?为什么typeof propertyOfObject 给我“字符串”?我如何检查 prop 是否是一个函数?
【问题讨论】:
标签: javascript jquery typeof object-literal