所以,说我有以下脚本:
var hey = {
foo: 1,
bar: 2,
baz: 3,
init: function(newFoo){
this.foo = newFoo;
return this;
}
}
hey.check = function(){
alert('yeah, new function');
}
基本上,我可以致电new hey.init(999)
并获取一个新的hey
变量,hey.foo
设置为999.但是当我这样做时,hey.init(999).check()
不再定义。有没有办法模仿脚本,但允许新的hey
有扩展变量/函数?
编辑:将hey.check()
更改为hey.init(999).check()
抱歉...
答案 0 :(得分:2)
您正在做的事情实际上并不是获取新的hey
实例,而是获得仅包含hey.init
属性的foo
实例。
我认为这就是你想要做的事情:
var hey =function() {
this.foo = 1;
this.bar = 2;
this.baz = 3;
this.init = function(newFoo){
this.foo = newFoo;
}
}
hey.check = function(){
alert('yeah, new function');
}
//now instantiating our class, and creating an object:
var heyInstance=new hey();
heyInstance.init(999);
alert(heyInstance.foo);
答案 1 :(得分:0)
对我有用......
粘贴时
var hey = {
foo: 1,
bar: 2,
baz: 3,
init: function(newFoo){
this.foo = newFoo;
return this;
}
}
hey.check = function(){
alert('yeah, new function');
}
console.log(hey);
hey.init(22);
console.log(hey);
hey.check();
进入Firebug的控制台,我最终得到hey.check();
的警报,第二个日志显示foo == 22
的对象。
你的目的是什么?