scope : this 问题

问题描述

GridPanel = Ext.extend(Ext.grid.GridPanel, {_store : null,// 构造方法constructor : function(_config) {if (_config == null) {_config = null;}Ext.apply(this, _config);this._store = new Ext.data.JsonStore({data : [{name : "张三",sex : "男",age : 11}, {name : "李四",sex : "女",age : 10}],fields : ["name", "sex", "age"]});// 拷贝父类的构造方法到当前对象ViewForm.superclass.constructor.call(this, {width : 300,autoHeight : true,store : this._store,renderTo : Ext.getBody(),// 取消标题下拉选项enableHdMenu : false,// 禁止拖动enableColumnMove : false,// 定义单选 selModel可简写smsm : new Ext.grid.RowSelectionModel({singleSelect : true,listeners : {"rowselect" : {fn : function(_sm, _index,_data) {this.fireEvent("rowse",_data);},scope : this}}}),// colModel 可简写cmcm : new Ext.grid.ColumnModel([{header : "姓名",align : "center",sortable : true,dataIndex : "name"}, {header : "性别",align : "center",sortable : true,dataIndex : "sex"}, {header : "年龄",align : "center",sortable : true,dataIndex : "age"}])});this.addEvents("rowse");}});以下是调用Ext.onReady(function() {var _grid = new GridPanel();_grid.on("rowse", function(_data) {_form.loadRecord(_data);});});如果代码没scope : this,则_grid.on无法监听请解答下为什么.3Q

解决方案

function(_sm, _index, _data) { this.fireEvent("rowse", _data); }如果只看上面一段,你就会知道this是指这个function的内部作用域。那么这个域内部有fireEvent方法吗?当然没有。Extjs的scope:this是将上面的function内this作用域改变为整个控件的作用域。至于怎么实现的,你可以参考源码实现。其本质就是call与apply的调用。
解决方案二:
fn : function(_sm, _index, _data) {

时间: 2024-12-23 03:23:45

scope : this 问题的相关文章

修改参数时scope参数值的作用

修改参数 可以通过alter system或者导入导出来更改spfile的内容 从oracle9i开始,alter system命令增加了一个新的选项scope,scope参数有3个可选值:memory,spfile和both memory:只改变当前实例运行,重新启动数据库后失效 spfile:只改变spfile的设置,不改变当前实例运行,重新启动数据库后生效 both:同时改变实例及spfile,当前更改立即生效,重新启动数据库后仍然有效. 针对rac环境,alter system还可以指定

AngularJS 全局scope与Isolate scope通信

在项目开发时,全局scope 和 directive本地scope使用范围不够清晰,全局scope与directive本地scope通信掌握的不够透彻,这里对全局scope 和 directive本地scope的使用做一个总结. 一.scope作用域 1.AngularJS中,子作用域一般都会通过JavaScript原型继承机制继承其父作用域的属性和方法.但有一个例外:在 directive中使用scope: { ... },这种方式创建的作用域是一个独立的"Isolate"作用域,它

面向对象的JavaScript编程及其 Scope 处理

本文首先对 JavaScript 的机制进行讲解,并结合当前流行的开源 JavaScript 框架讲解如何在 JavaScript 中实现面向对象和继承机制:之后本文将对面向对象 JavaScript 编程中容易引起误解和 Scope 的几个问题做详细阐述:最后针对面向对象的 JavaScript 编程中的 Scope 问题给出几点建议. 面向对象和模拟继承 JavaScript 是一种弱类型解释运行的脚本语言,就语言本身来讲它不是一门面向对象语言.但是我们可以利用一些语言的特性来模拟面向对象编

FREELISTS and FREELIST GROUPS. SCOPE & APPLICATION

application PURPOSE ======= The purpose of this article is to provide an understanding of FREELISTS and FREELIST GROUPS. SCOPE & APPLICATION =================== This article is intended to be used by DBAs to help understand how FREELISTS and FREELIST

一个区分Bean的作用域的例子,即的scope属性

以前很不明白Bean的scope属性的含义,今天做了一个实验,终于差不多搞明白了.贴出来与大家共享.例子很简单,Bean的功能为取当前时间,其代码为:Common.java:--------------------package XX; import java.util.Date;import java.text.*; public class Common{    Date d=new Date();    public String now(String s)    {        Sim

maven dependency中scope=compile 和 provided区别

问题再现: 上次这边朋友问我一个问题,就是他们在pom.xml中的dependency中,看到有一些是<scope>provided</scope>的情况,比如如下: <dependency> <groupId>com.liferay.portal</groupId> <artifactId>portal-impl</artifactId> <version>6.1.0</version> <

网络子系统57_路由Scope

// 参考 深入理解linux网络技术内幕 // Scope // 1.路由的Scope表示到目的网路网络的距离 // 2.ip地址的Scope表示该ip地址距离本地主机有多远 // 路由Scope // 保存在fib_alias->fa_scope // 路由Scope常见取值及其意义: // 1.RT_SCOPE_NOWHERE: 路由不通往任何地方 // 2.RT_SCOPE_HOST:为本地接口配置ip地址时,自动创建的路由表项 // 3.RT_SCOPE_LINK:为本地接口配置ip地

jboss classloader机制以及scope配置

1.  概念介绍 UCL : org.jboss.mx.loading.UnifiedClassLoader3 ,它继承标准的java.net.URLClassLoader,覆盖了标准parent delegation模型以使用共享class和资源仓库   仓库(responsitory): org.jboss.mx.loading.UnifiedLoaderRepository3.   平面模型:为了热deploy模块的需要,JBoss实现了自己的类装载器UnifiedClassLoader3

AngularJS深入探讨scope,继承结构,事件系统和生命周期_AngularJS

本文实例讲述了AngularJS的scope,继承结构,事件系统和生命周期.分享给大家供大家参考,具体如下: 深入探讨 Scope 作用域 每一个 $scope 都是类 Scope 的一个实例.类 Scope 拥有可以控制 scope 生命周期的方法,提供事件传播的能力,并支持模板渲染. 作用域的层次结构 让我们再来看看这个简单的 HelloCtrl 的例子: var HelloCtrl = function($scope){ $scope.name = 'World'; } HelloCtrl

AnjularJS中$scope和$rootScope的区别小结_AngularJS

一句话总结:      $rootScope针对全局的作用域生效      $scope只针对当前的controller作用域生效 用下面的例子来证明上述的说法: 定义一个模块名为myApp var myApp = angular.module('myApp', []); 创建oneController和twoController这两个controller oneController传入$scope和$rootScope myApp.controller('oneController', ['$