init函数和Javascript中的对象
我有以下(简化)代码: 上面的代码位于js文件中,然后位于相关页面的页脚中:init函数和Javascript中的对象,javascript,oop,Javascript,Oop,我有以下(简化)代码: 上面的代码位于js文件中,然后位于相关页面的页脚中: <script type="text/javascript"> Foo.init({ option1: "value", option2: "value" }, function (obj) { console.log("The object was ", obj); }); </script> init({option1:“值”,option2:“值”},函
<script type="text/javascript">
Foo.init({ option1: "value", option2: "value" }, function (obj) {
console.log("The object was ", obj);
});
</script>
init({option1:“值”,option2:“值”},函数(obj){
log(“对象是”,obj);
});
基本上,我希望能够做到以下几点:
这个
可以用于上面的这里的
,但结果是,至少当我测试它时,这个
就是DOM窗口对象
首先,我是否正确地构造了这个对象?还是有更好的方法来创造它
其次,假设我做得对,那么
这里应该放什么
以便当console.log(“对象是”,foo)时代码>运行时,obj
的值是创建的Foo
对象?是的,在以这种方式调用的匿名函数中,这将引用窗口对象。要从init方法引用此引用,必须将引用存储在另一个变量中:
var kallback = callback, self = this;
$.extend(settings, options);
bar(function () {
if (kallback) {
kallback(self);
}
});
只要你只想拥有一个foo对象,你构造对象的方法就行。一个函数是否是匿名的并不重要,这个
不能仅仅通过函数的定义就说是什么。这是在通话时间内解决的,只针对那个电话。这就是为什么我说这样打对不起,我错过了那个;o只需阅读“在匿名函数中”。祝你玩得愉快。不过你说得对,通话时间已经结束了。在JS中考虑这一点很重要,但不幸的是仍然造成很多混乱。谢谢,我只想要一个FO对象,所以看起来这会起作用。
var kallback = callback, self = this;
$.extend(settings, options);
bar(function () {
if (kallback) {
kallback(self);
}
});