最近项目中使用到Requirejs、Backbone、Handlebars,对Backbone的Model可以绑定change、destory比较奇怪,
查看其源码,大概明白了什么意思,在此记录下自己的简单实现,以此作为笔记备忘。
(function(w){
var Model = function(){};
Model.prototype.data = [];
Model.prototype._callback = [];
Model.prototype._callbackOp = [];
Model.prototype.add = function(key,value){
this.data[key] = value;
var callback = this._callback['change'];
if( callback&&typeof callback==='function' ){
callback.apply(this,this._callbackOp['change']);
}
};
Model.prototype.get = function(key){
return this.data[key];
}
Model.prototype.bind = function(on,func,op){
this._callback[on] = func;
this._callbackOp[on] = op;
}
w.Model = Model;
})(window);
function callback(paramA,paramB){
alert('model对象改变了:key='+paramA+',value='+paramB);
};
var person = new Model();
person.bind('change',callback,['参数1','参数2']);
person.add('name','gavin');
alert('get方法取值:'+person.get('name'));
另外顺便记录下javascript中call、apply的使用,每次都需要查询,老记不住,⊙﹏⊙b汗!
写道
JavaScript 中通过call或者apply用来代替另一个对象调用一个方法,将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象
区分apply,call就一句话,
写道
foo.call(this, arg1,arg2,arg3) == foo.apply(this, arguments)==this.foo(arg1, arg2, arg3)
例子:
function A(mA,mB){
alert('A,mA='+mA+';mB='+mB);
};
function B(){
alert('B');
A.apply(this,['参数A','B中apply调用']);
A.call(this,'参数A','B中call调用');
};
B();
call, apply都属于Function.prototype的一个方法,它是JavaScript引擎内在实现的。所以每个Function对象也就是每个方法都有call, apply属性。注意对象实例没有prototype方法,即使用了new后的对象。
分享到:
相关推荐
直接为 Element 对象绑定事件是指使用 JavaScript 代码直接将事件处理程序赋值给元素对象的事件属性。例如: ``` var obj = document.getElementById('btn'); obj.onclick = function() { alert('click'); } ``` ...
总的来说,将JavaScript事件绑定到ASP.NET对象是提升ASP.NET应用性能和交互性的有效手段。虽然语法可能与纯HTML页面有所不同,但通过理解和利用ASP.NET控件的`Attributes`属性,开发者能够灵活地结合客户端和服务器...
本文实例讲述了JavaScript Dom 绑定事件操作JavaScript Dom 绑定事件操作。分享给大家供大家参考,具体如下: JavaScript Dom 绑定事件 // 先获取Dom对象,然后进行绑定 document.getElementById('xx').onclick ...
在JavaScript中,事件绑定是创建交互式网页的关键部分。本文将详细讲解JavaScript处理事件绑定的一些兼容性写法,适用于不同的浏览器环境。 首先,让我们看一个基本的事件绑定函数的实现。这个函数`addEvent`接受三...
JavaScript对象参考手册是一份详尽的资源,涵盖了JavaScript编程中的核心概念,特别是关于对象的使用。这份手册旨在帮助开发者深入理解JavaScript对象的本质,提高他们在实际项目中的应用能力。通过链接到的博主...
在这个例子中,`document.onclick`表示为document对象绑定了一个点击事件的监听器,当用户点击页面时,会调用提供的匿名函数,并自动传递事件对象`event`。开发者可以直接在函数参数中接收这个事件对象,这符合W3C的...
Javascript循环绑定事件示例代码详解 本篇资源摘要信息将对Javascript循环绑定事件的示例代码进行详细的解释,并对闭包的概念进行深入分析。 一、循环绑定事件的基本概念 在Javascript中,我们可以使用循环来绑定...
《JavaScript》——Event 对象与事件 Event 对象是 JavaScript 中的一个基本概念,它代表了用户与 Web 页面的交互行为,例如点击、鼠标移动、键盘输入等。Event 对象的属性和方法可以帮助开发者更好地处理用户的...
8.3.1 JavaScript对象模型 JavaScript有全局对象、内置对象、宿主对象等层次结构,如DOM(文档对象模型)和BOM(浏览器对象模型)。 8.3.2 客户端对象层次介绍 客户端对象层次主要涉及浏览器提供的对象,如window、...
### JavaScript对象大全详解 #### 一、JavaScript简介 JavaScript 是一种强大的、解释型的脚本语言,由 Netscape 公司开发,最初被命名为 LiveScript。随着 Web 技术的发展,JavaScript 成为了网页开发中不可或缺...
JavaScript事件对象是JavaScript编程中处理用户交互和动态更新页面的核心机制。事件对象(event object)包含了与事件相关的所有信息,如触发事件的元素、事件类型以及特定事件的额外数据。这篇深入详解将帮助我们理解...
本文将深入探讨JavaScript中的事件绑定,特别是传统事件绑定的问题,W3C事件处理函数,IE事件处理函数,以及事件对象的其他补充。 首先,我们来看看传统事件绑定的问题。传统的事件绑定通常分为内联事件处理和脚本...
在JavaScript中,事件绑定是前端开发中的一项基础技术,它负责指定当特定事件发生时(如用户点击按钮、加载页面等),应该执行哪些代码。在学习JavaScript事件绑定时,主要涉及以下几个重要知识点。 首先,传统事件...
### JavaScript源代码:JQuery绑定事件四种实现方法解析 #### 一、`bind` 方法 - **概述**:`bind` 方法是jQuery中用于绑定事件处理程序的基本方式之一。它允许开发者为DOM元素绑定特定类型的事件处理器。这种方法...
基于安卓平台的JavaScript扩展对象实现方法及绑定接口结构
在JavaScript的世界里,双向数据绑定是一项非常重要的特性,它使得视图层与模型层的数据能够自动保持同步。这种机制在构建用户界面时极大地简化了工作流程,尤其在MVVM(Model-View-ViewModel)框架中得到了广泛应用...
### jquer事件绑定 在前端开发领域,jQuery作为一款优秀的JavaScript库,极大地方便了开发者进行DOM操作、AJAX交互以及事件处理等操作。本文将详细介绍如何使用jQuery进行事件绑定,特别是通过`bind()`方法来实现...