0

我想创建一个像这样的对象:

Object = function () {
    this.Subfunction = function (Data) {
        alert('Data');
    }
}

并且能够从对象外部调用它,如下所示:

var Object = new Object();
Object.Subfunction(Data);

每次我想Data在.ObjectObject

4

3 回答 3

2

每次我想在 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
于 2013-08-26T03:17:09.057 回答
1

也许将此功能移至原型会更适合您

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设置为原型,除非手动选择上下文)。

于 2013-08-26T02:38:30.663 回答
1

也许您的意思是使用传递的参数:

Object = function () {
    this.Subfunction = function (Data) {
        alert(Data);
    }
};

var test= "Hello world !";
var Object = new Object();
Object.Subfunction(test);

这是小提琴:http: //jsfiddle.net/3EpSy/

于 2013-08-26T02:40:14.730 回答