我如何创建一个既是函数又是对象的东西?
假设它的名字是obj
。
在以下上下文中,它是一个对象:
obj.key1 = "abc";
obj.key2 = "xyz";
在另一种情况下,它是这样的函数:
var test = obj("abc");
如何在 JavaScript 中创建这个对象?
我如何创建一个既是函数又是对象的东西?
假设它的名字是obj
。
在以下上下文中,它是一个对象:
obj.key1 = "abc";
obj.key2 = "xyz";
在另一种情况下,它是这样的函数:
var test = obj("abc");
如何在 JavaScript 中创建这个对象?
像这样:
function obj( param ) {
console.log( param );
}
obj.prototype.key1 = "abc";
obj.prototype.key2 = "xyz";
var test = new obj( "abc" );
console.log( test.key1 );
console.log( test.key2 );
new
保存函数上下文所需的密钥。您可以使用return this
in 函数来避免这种情况。
或使用this
代替原型:
function obj( param ) {
console.log( param );
this.key1 = "abc";
this.key2 = "xyz";
}
function obj( param ){
var that = this;
that.key1 = "default";
that.key2 = "default";
that.someMethod = function(){
return param;
};
that.showMessage = function(){
alert( param );
};
return that;
}
接着:
var test = obj("hi there");
test.key1 = "abc";
test.key2 = "xyz";
test.showMessage();
小提琴:http : //jsfiddle.net/Xnye5/
或者
obj("hi there again").showMessage();
小提琴:http : //jsfiddle.net/Xnye5/1