我一直在jsfiddle中尝试一些js代码,似乎我不能让下面的所有代码组合起作用..
//combination #1
function get_set() {
this.get = function () {
document.write("get");
};
this.set = function () {
document.write("set");
};
};
var x = get_set; // storing function reference in x
x.get(); //invoking doesnt work.
//combination#2
var get_set = function() {
this.get = function () {
document.write("get");
};
this.set = function () {
document.write("set");
};
};
get_set.get(); //doesnt work as well..
有什么我想念的吗?提前感谢建设性的建议/指出任何错误。非常感谢任何帮助。
答案 0 :(得分:4)
您必须创建get_set
var x = new get_set();
或在get_set
内,您必须使用return this;
才能使用此示例。
答案 1 :(得分:3)
您的get_set
函数是构造函数函数。它旨在创建('构造')自身的实例。为了完成这项工作,您需要关键字new
。所以
var getset = new get_set;
创建get_set的实例。现在可以使用方法getset.set
和getset.get
。
在这种情况下,您可以使用Object literal创建一个唯一的实例:
var get_set = {
get: function () {
document.write("get");
},
set: function () {
document.write("set");
}
};
现在您不需要new
关键字,并且这些方法可以立即使用(get_set.get
,get_set.set
)
答案 2 :(得分:0)
使用x = new get_set;这将有效。