`

javascript对象绑定事件

 
阅读更多

最近项目中使用到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后的对象。

 

分享到:
评论

相关推荐

    javascript为DOM绑定事件 兼容

    直接为 Element 对象绑定事件是指使用 JavaScript 代码直接将事件处理程序赋值给元素对象的事件属性。例如: ``` var obj = document.getElementById('btn'); obj.onclick = function() { alert('click'); } ``` ...

    将JavaScript事件绑定到ASP.NET对象

    总的来说,将JavaScript事件绑定到ASP.NET对象是提升ASP.NET应用性能和交互性的有效手段。虽然语法可能与纯HTML页面有所不同,但通过理解和利用ASP.NET控件的`Attributes`属性,开发者能够灵活地结合客户端和服务器...

    JavaScript Dom 绑定事件操作实例详解

    本文实例讲述了JavaScript Dom 绑定事件操作JavaScript Dom 绑定事件操作。分享给大家供大家参考,具体如下: JavaScript Dom 绑定事件 // 先获取Dom对象,然后进行绑定 document.getElementById('xx').onclick ...

    javascript 处理事件绑定的一些兼容写法

    在JavaScript中,事件绑定是创建交互式网页的关键部分。本文将详细讲解JavaScript处理事件绑定的一些兼容性写法,适用于不同的浏览器环境。 首先,让我们看一个基本的事件绑定函数的实现。这个函数`addEvent`接受三...

    javascript对象参考手册

    JavaScript对象参考手册是一份详尽的资源,涵盖了JavaScript编程中的核心概念,特别是关于对象的使用。这份手册旨在帮助开发者深入理解JavaScript对象的本质,提高他们在实际项目中的应用能力。通过链接到的博主...

    JavaScript 事件对象介绍

    在这个例子中,`document.onclick`表示为document对象绑定了一个点击事件的监听器,当用户点击页面时,会调用提供的匿名函数,并自动传递事件对象`event`。开发者可以直接在函数参数中接收这个事件对象,这符合W3C的...

    Javascript循环绑定事件的示例代码

    Javascript循环绑定事件示例代码详解 本篇资源摘要信息将对Javascript循环绑定事件的示例代码进行详细的解释,并对闭包的概念进行深入分析。 一、循环绑定事件的基本概念 在Javascript中,我们可以使用循环来绑定...

    《javascript》——event对象与事件

    《JavaScript》——Event 对象与事件 Event 对象是 JavaScript 中的一个基本概念,它代表了用户与 Web 页面的交互行为,例如点击、鼠标移动、键盘输入等。Event 对象的属性和方法可以帮助开发者更好地处理用户的...

    JavaScript面向对象基础.ppt

    8.3.1 JavaScript对象模型 JavaScript有全局对象、内置对象、宿主对象等层次结构,如DOM(文档对象模型)和BOM(浏览器对象模型)。 8.3.2 客户端对象层次介绍 客户端对象层次主要涉及浏览器提供的对象,如window、...

    javascript对象大全

    ### JavaScript对象大全详解 #### 一、JavaScript简介 JavaScript 是一种强大的、解释型的脚本语言,由 Netscape 公司开发,最初被命名为 LiveScript。随着 Web 技术的发展,JavaScript 成为了网页开发中不可或缺...

    JavaScript事件对象深入详解

    JavaScript事件对象是JavaScript编程中处理用户交互和动态更新页面的核心机制。事件对象(event object)包含了与事件相关的所有信息,如触发事件的元素、事件类型以及特定事件的额外数据。这篇深入详解将帮助我们理解...

    javascript大事绑定学习要点_.docx

    本文将深入探讨JavaScript中的事件绑定,特别是传统事件绑定的问题,W3C事件处理函数,IE事件处理函数,以及事件对象的其他补充。 首先,我们来看看传统事件绑定的问题。传统的事件绑定通常分为内联事件处理和脚本...

    javascript事件绑定学习要点

    在JavaScript中,事件绑定是前端开发中的一项基础技术,它负责指定当特定事件发生时(如用户点击按钮、加载页面等),应该执行哪些代码。在学习JavaScript事件绑定时,主要涉及以下几个重要知识点。 首先,传统事件...

    【JavaScript源代码】JQuery绑定事件四种实现方法解析.docx

    ### JavaScript源代码:JQuery绑定事件四种实现方法解析 #### 一、`bind` 方法 - **概述**:`bind` 方法是jQuery中用于绑定事件处理程序的基本方式之一。它允许开发者为DOM元素绑定特定类型的事件处理器。这种方法...

    基于安卓平台的JavaScript扩展对象实现方法及绑定接口结构

    基于安卓平台的JavaScript扩展对象实现方法及绑定接口结构

    用36行代码实现最简单的javascript双向绑定

    在JavaScript的世界里,双向数据绑定是一项非常重要的特性,它使得视图层与模型层的数据能够自动保持同步。这种机制在构建用户界面时极大地简化了工作流程,尤其在MVVM(Model-View-ViewModel)框架中得到了广泛应用...

    jquer事件绑定

    ### jquer事件绑定 在前端开发领域,jQuery作为一款优秀的JavaScript库,极大地方便了开发者进行DOM操作、AJAX交互以及事件处理等操作。本文将详细介绍如何使用jQuery进行事件绑定,特别是通过`bind()`方法来实现...

Global site tag (gtag.js) - Google Analytics