Javascript 如何创建对象本身是函数的对象?
我有一个javascript对象,从中我通过构造函数创建了它Javascript 如何创建对象本身是函数的对象?,javascript,Javascript,我有一个javascript对象,从中我通过构造函数创建了它 var obj = new Obj(); 它有几个功能,但我也希望使用它如下 obj(); Obj的定义如下: function obj() { this.blah = function () { }; } 如何实现这一点?如果调用一个函数,该函数将返回一个被视为对象和函数的任意函数,这样会更容易。每一个都是唯一的,您不需要使用new function Obj() { var ret = function(){
var obj = new Obj();
它有几个功能,但我也希望使用它如下
obj();
Obj的定义如下:
function obj() {
this.blah = function () {
};
}
如何实现这一点?如果调用一个函数,该函数将返回一个被视为对象和函数的任意函数,这样会更容易。每一个都是唯一的,您不需要使用
new
function Obj() {
var ret = function(){
console.log('Hello');
};
ret.blah = function () {
console.log('World');
};
return ret;
}
var obj = Obj();
obj();//Hello
obj.blah();//World
如果您调用一个函数,它将返回一个被视为对象和函数的任意函数,这会更容易。每一个都是唯一的,您不需要使用
new
function Obj() {
var ret = function(){
console.log('Hello');
};
ret.blah = function () {
console.log('World');
};
return ret;
}
var obj = Obj();
obj();//Hello
obj.blah();//World
可以在函数对象上创建属性。例如,如果你有这个函数
function foo() {
return "bar";
}
您可以在foo
上设置属性
foo.baz = 42;
因此,现在您可以调用
foo
并获得结果“bar”
,您可以访问其baz
属性。您可以在函数对象上创建属性。例如,如果你有这个函数
function foo() {
return "bar";
}
您可以在foo
上设置属性
foo.baz = 42;
因此,现在您可以调用
foo
并获得结果“bar”
,您可以访问它的baz
属性。我想您正在这里寻找“闭包”。
尝试:
函数MyObject(/*构造函数参数*/){
//将属性分配给“this”
返回函数(){
返回此;//我认为您正在寻找“结束”。
尝试:
函数MyObject(/*构造函数参数*/){
//将属性分配给“this”
返回函数(){
返回此;//似乎是XY问题,为什么要这样做?函数是对象,因此可以创建函数并向其中添加属性。您不能做的是创建一个对象,然后神奇地将其转化为函数似乎是XY问题,为什么要这样做?函数是对象,因此可以创建函数并向其中添加属性你不能做的是创建一个对象,然后神奇地把它变成一个函数