gpt4 book ai didi

javascript - 自动将动态添加的对象属性(函数)包装在包装函数中

转载 作者:行者123 更新时间:2023-11-28 20:00:02 25 4
gpt4 key购买 nike

我使用此设置向对象添加属性:

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 而不是“function”。我检查了各种文章和帖子,但方法是:

typeof propertyOfObject == 'function' 

似乎完全有效。

我在这里做错了什么?为什么 typeof propertyOfObject 给我“字符串”?我如何检查 prop 是否是一个函数?

最佳答案

因为您只是迭代对象键,而不是它的属性。

您需要完全限定该属性才能访问它:

if( typeof obj[ prop ] === 'function' ) { }

关于javascript - 自动将动态添加的对象属性(函数)包装在包装函数中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21812344/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com