如何分配给函数的成员
How to assign to members of a function?
由于函数是第一类对象,因此应该可以分配给它们的成员。
我认为arguments.callee
这样做对吗?
有其他方法可以设置这些字段吗?
在第一种情况下,如何设置field
?
function something1() {
arguments.callee.field = 12;
}
alert(something1.field); // will show undefined
something1();
alert(something1.filed); // will show 12
something2 = function() {
arguments.callee.field = 12;
};
alert(something2.field); // will show undefined
something2();
alert(something2.field); // will show 12
更新1
我的意思是,当函数运行时,如何从函数内部访问成员。
您不需要使用arguments.callee
来引用有名称的函数;你可以用这个名字。当您使用声明函数时,自然会出现这种情况
function name(...) { ... }
句法;但即使在函数表达式中,也允许提供一个临时名称:
(function temp_name(...) { ... })(arg);
因此,如果你想从函数内部设置属性,你可以写:
function something1() {
something1.field = 12;
}
alert(something1.field); // will show undefined
something1();
alert(something1.field); // will show 12
something2 = function something2() { // note the second "something2"
something2.field = 12;
};
alert(something2.field); // will show undefined
something2();
alert(something2.field); // will show 12
以下是我的操作方法:
function something1() {
this.field = 12;
}
var test = new something1();
alert(test.field); // alerts "12"
test.field = 42;
alert(test.field); // alerts "42"
如果要将其视为一个类,则需要先创建一个新的实例,然后才能访问其字段。
JSFiddle
我这样想对吗?卡利这么做了?
是的,是的,但现在他们反对它。
有其他方法可以设置这些字段吗?
取代callee
的官方方法是使用显式函数名,如funcName.propertyName=...
。然而,这并不总是方便的,例如,对于动态生成的函数。引用John Resig的话,我们会错过辩论。总之,它对特定任务非常有用。
简单
function something1() {};
something1.Property = "Foo";
您可以像普通对象一样直接将特性指定给任何函数。如果说在OOP语言中创建静态属性和方法。
编辑
功能内部相同
function something1() {
something1.AnotherProp = "Bar";
};
something1.Property = "Foo";
相关文章:
- 为什么在这种情况下,“This”确实充当javascript函数中的私有成员
- 如何将从XML读取的值存储到本地对象's成员使用.get()函数
- 成员函数中的Javascript“this”object==“window”
- CakePHP错误:在非对象上调用成员函数get(),使用cakejavascript助手时出错
- 为什么可以在内部函数成员中访问对象引用,而不能在内部属性成员中访问
- 对象属性不是在工厂成员函数内部创建的
- 如何在 Javascript 中将函数绑定到对象数据成员的更改
- 在setTimeout中执行jQuery成员函数而不关闭的方法
- 如何从父类中记录成员函数
- Javascript中的成员函数
- 访问原型函数中的私有成员
- 如何向对象添加函数并引用其成员
- 为什么要在构造函数中定义事件处理程序成员函数(内联)以便使用“unbind”
- 在 Jquery 插件中调用成员函数
- 如何在将值分配给对象成员时执行函数
- 数组填充外部函数 - 不可访问的成员
- 成员函数的 JS 最佳实践
- 如何在javascript中声明成员函数?获取“TypeError: Object.function is not a
- Javascript - 在类的函数成员中正确使用“this”
- 访问es2015类函数成员