如何在函数中访问创建的对象
How to access a created object in a function
我正在尝试解决以下内容。
我称之为视图:
var loader = new LoadingView();
附加到该视图的函数将创建一个新的对象"微调器"
loader.showLoader()
我现在希望它接下来可以调用一个隐藏该对象微调器的函数
loader.hideLoader();
但是,hideLoader 无权访问"微调器"对象。
为什么?
查看代码:
define([
'jquery',
'underscore',
'backbone',
'spinner',
], function($, _, Backbone, Spinner){
var LoadingView = Backbone.View.extend({
el: '#loader',
// View constructor
initialize: function() {
this.opts = {
zIndex: 2e9, // The z-index (defaults to 2000000000)
top: '20', // Top position relative to parent in px
left: 'auto' // Left position relative to parent in px
};
_.bindAll(this, 'showLoader', 'hideLoader');
},
showLoader: function () {
var spinner = new Spinner(this.opts).spin(this.el);
},
hideLoader: function () {
var self = this;
console.log(self)
this.spinner.stop();
}
}); // end loaderview
return LoadingView;
});
是因为你在局部范围内定义了spinner
,它只是showLoader
局部范围内的变量,并没有作为你尝试在hideLoader
中访问的属性附加到this
上下文中,所以尝试将其更改为
showLoader: function () {
this.spinner = new Spinner(this.opts).spin(this.el); //assuming spin returns the spinner object itself if not. do the below
//this.spinner = new Spinner(this.opts);
//this.spinner.spin(this.el);
},
您需要
将微调器对象设置为this
的属性:
showLoader: function () {
this.spinner = new Spinner(this.opts);
this.spinner.spin(this.el); // not sure if you can chain these calls
},
相关文章:
- 在创建对象后附加一个jquery事件
- 错误:自动化服务器可以't创建对象
- 如何在不使用 new 关键字的情况下从函数创建对象
- 文本表示法VS.构造函数,用于在JavaScript中创建对象
- 创建对象函数原型和代码是错误的
- 使用Undercore创建对象集合
- 如何在JavaScript中创建对象时使用变量的值
- 正在创建对象的递归列表
- 这两种不同的创建对象文字的方法有什么区别
- ES6 const,用于在JavaScript中创建对象原型;这是一种模式吗
- 使用字符串作为名称创建对象
- 使用参数创建对象
- 如何在JS中创建对象的可变和不可变副本
- 用javascript创建对象的dynamic数组
- Javascript,用vars创建对象的最佳方法
- 离子幻灯片框中未创建对象
- 在创建对象时调用javascript函数
- JavaScript - 有没有办法动态创建对象的新实例
- 为什么使用 Object('123') 创建对象会创建一个 String() 对象,但 typeof 是“对象”
- EmberJS - 在创建对象后添加绑定