我想像这样创建一个Object:
Object = function () {
this.Subfunction = function (Data) {
alert('Data');
}
}
并且能够从对象外部调用它,如下所示:
var Object = new Object();
Object.Subfunction(Data);
每次我想在Data
中运行任何内容时,必须通过Object
发送Object
非常不方便。
答案 0 :(得分:2)
每次都必须通过对象发送数据真的很不方便 我希望在Object中运行任何东西
这就是面向对象编程的美妙之处。对象可以保存数据并附加行为。如果您想避免一直传递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
答案 1 :(得分: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');
请注意,在栏示例中,您不需要使用new
,但是那时它不是特定于实例的(this
设置为原型除非手动选择上下文。
答案 2 :(得分:1)
也许您打算做的是使用传递的参数:
Object = function () {
this.Subfunction = function (Data) {
alert(Data);
}
};
var test= "Hello world !";
var Object = new Object();
Object.Subfunction(test);