如果我有一个函数作为对象的属性,函数闭包规则仍然适用吗?我记得读过一个函数是一个对象,但我也理解一个对象不是一个函数。
更具体地说,我可以抓取并编辑同一对象内的其他属性而无需引用该函数中的对象吗?这是一个例子:
someObj = {
property : 44,
calculate : function(){
property * moreproperties;
};
还是我这样做?
someObj = {
property : 44,
calculate : function(){
someObj.property * someObj.moreproperties;
};
答案 0 :(得分:1)
您可以使用this
关键字
someObj = {
property : 44,
calculate : function(){
this.property * this.moreproperties;
};
如果你有另一个函数,如jQuery store this
中的事件回调到变量
someObj = {
property : 44,
calculate : function(){
var parent = this;
$('#some-element').click(function() {
parent.something * parent.somethingElse
});
};