我想创建一个像这样的对象:
Object = function () {
this.Subfunction = function (Data) {
alert('Data');
}
}
并且能够从对象外部调用它,如下所示:
var Object = new Object();
Object.Subfunction(Data);
每次我想Data
在.Object
Object
我想创建一个像这样的对象:
Object = function () {
this.Subfunction = function (Data) {
alert('Data');
}
}
并且能够从对象外部调用它,如下所示:
var Object = new Object();
Object.Subfunction(Data);
每次我想Data
在.Object
Object
每次我想在 Object 中运行任何东西时都必须通过 Object 发送 Data 真的很不方便
这就是面向对象编程的美妙之处。对象可以保存数据并附加行为。如果您想避免data
一直传递,您可以使用该constructor
函数来初始化并存储data
为您新创建的实例的成员。
例如:
function SomeObject(data) {
this.data = data; //store data
}
SomeObject.prototype.doSomething = function () {
console.log(this.data); //use data
};
var o = new SomeObject('some data as string');
o.doSomething(); //no need to pass data anymore
也许将此功能移至原型会更适合您
MyObject = function () {};
MyObject.prototype.subFunction = function (data) {console.log('Data', data);};
// this still works
var myObject = new MyObject();
myObject.subFunction('foo');
// this also works
MyObject.prototype.subFunction('bar');
请注意,在bar示例中,您不需要使用new
,但是那时它不是特定于实例的(this
设置为原型,除非手动选择上下文)。
也许您的意思是使用传递的参数:
Object = function () {
this.Subfunction = function (Data) {
alert(Data);
}
};
var test= "Hello world !";
var Object = new Object();
Object.Subfunction(test);
这是小提琴:http: //jsfiddle.net/3EpSy/