`
ydwcn
  • 浏览: 65157 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

javascript中的调用模式

阅读更多

一,方法调用模式

 当一个函数被保存为对象的一个属性时,我们称它为一个方法,此方法被调用时,this被绑定到该对象。 如果一个调用表达式包含一个属性存取表达式(即一个.点表达式或[subscript]下标表达式),那么它被当作一个方法来调用。

//创建myObject, 它有一个value属性和一个increment方法
//increment方法接受一个可选参数,如果参数不是数字,默认使用数字1
var myObject = {
     value : 0;
     increment : function (inc) {
          this.value += typeof inc === 'number' ? inc : 1;
     }
};

myObject.incement();
document.writeln(myObject.value);  //1
myObject.incement(2);
document.writeln(myObject.value);  //3

 

方法可以使用this去访问对象,所以它能从对象中取值或修改该对象。this到对象的绑定发生在调用的时侯。这个"超级"迟绑定(very late binding)使得函数可以对this高度复用。通过this可以得到它们所属对象的上下文的方法称为 公共方法。

 

二,函数调用模式

当一个函数并非一个对象的属性时,那么它被当作一个函数来调用。

var sum = add(3,4); //sum 的值为7

 当函数以此模式调用时,this被绑定到全局对象,这是语言设计上的错误。倘若语言设计正确,当内部函数被调用时,this应该仍绑定到外部函数的this 变量。这个设计错误的后果是方法不能通过内部函数来帮助它工作。因为内部函数的this被绑定了错误的值,所以不能共享该方法对对象的访问权。解决方案: 如果该方法定义一个变量并给它赋值为this.那么内部函数就可以能过那个变量访问到this.

//给myObject增加一个double方法
myObject.double = function() {
     var that = this;   //解决方法

     var helper = function() {
            that.value = add(that.value, that.value);
     };
      helper ();   //以函数形式调用helper
};


//以方法形式调用double

myObject.double();
document.writeln(myObject.value);   //6

 

三,构造器调用模式

 如果在一个函数前台带上new来调用,那么将创建一个连接到该函数的prototype成员的新对象,同时this将会绑定到那个新对象上。

//创建一个Quo的构造器函数。它构造一个带有status属性的对象。

var Quo = function(string) {
      this.status = string;
};

//给Quo的所有实例提供一个名为getStatus的公共方法。
Quo.prototype.getStatus = function() {
     return this.status;
};

//构造一个Quo实例
var myQuo = new Quo("ydwcn");
document.writeln(myQuo .getStatus); 

 

分享到:
评论

相关推荐

    JavaScript中函数对象调用模式总结

    JavaScript中的函数对象调用模式是编程中至关重要的概念,它涉及到函数作为一等公民、作用域、闭包、原型链等多个核心知识点。这篇博客通过深入分析JavaScript中的函数调用模式,帮助开发者更好地理解和掌握这些概念...

    javascript调用delphi中的函数

    标题“javascript调用delphi中的函数”涉及到的技术领域是跨语言通信,具体是JavaScript与Delphi之间的交互。这种交互通常发生在Web应用程序与桌面应用程序的集成,或者在浏览器扩展和本地资源之间。以下是对这一...

    JavaScript设计模式+JavaScript模式+JavaScript异步编程

    在JavaScript中,常见的设计模式包括: - 单例模式:确保一个类只有一个实例,并提供全局访问点。 - 工厂模式:创建对象时避免使用new操作符,提供更灵活的实例化过程。 - 观察者模式:定义对象间的一种一对多...

    JavaScript设计模式.pdf

    JavaScript设计模式是指在软件开发中使用JavaScript语言编写的设计模式。这些设计模式旨在提高代码的重用性、可读性、维护性和扩展性。以下是JavaScript设计模式的知识点总结: 1. 单体模式(Singleton Pattern)...

    Javascript 设计模式 电子书

    5. 发布/订阅模式:这是观察者模式的变体,在此模式中,发布者和订阅者之间不会直接相互调用,而是通过一个中间层进行通信。在前端开发中,这可以用来解耦模块之间的直接依赖关系。 6. 适配器模式:适配器模式允许...

    javascript调用exe文件,弹出系统软键盘

    但通过一些技术手段,我们可以实现JavaScript调用exe文件的功能,进而实现弹出系统软键盘的需求。下面将详细介绍这个过程。 首先,为了在JavaScript中调用exe文件,我们需要借助一些浏览器扩展API或者服务器端的...

    Javascript 严格模式详解

    在JavaScript中,**严格模式**(strict mode)是ECMAScript 5引入的一种新特性,旨在改善语言的一些不足,提高代码质量和安全性,以及为未来的JavaScript版本铺平道路。严格模式的启用不仅能够帮助开发者避免一些...

    JS 四种函数调用模式

    在 JS 中,有四种主要的函数调用模式,分别是:普通函数调用、方法调用、构造函数调用和apply/call调用。下面我们将详细探讨这些调用模式。 1. **普通函数调用**: 这是最常见的情况,函数作为一个独立的实体被执行...

    JavaScript设计模式Demo

    在JavaScript中,常用于数据访问的拦截,或者在调用真实对象之前进行额外的操作。 7. **命令模式**:将请求封装为一个对象,使得可以使用不同的请求、队列请求、或者记录日志。在JavaScript中,命令模式可用于实现 ...

    JavaScript设计模式中的单例模式和观察者模式.docx

    ### JavaScript设计模式详解:单例模式与观察者模式 ...通过以上两个设计模式的学习,我们可以看到它们在JavaScript中的实际应用,这有助于开发者更好地理解和掌握这些模式,从而编写出更加高效、可维护的代码。

    初学者能够很快的学会各种java方法在javascript中是如何调用的。

    【标题】与【描述】提到的主题是关于初学者如何快速掌握在JavaScript中调用Java方法,通过使用DWR(Direct Web Remoting)这一开源项目。DWR使得AJAX(Asynchronous JavaScript and XML)的应用变得简单易行,从而...

    Webview与Javascript相互调用 (Android studio )demo

    本示例项目"Webview与Javascript相互调用 (Android Studio)"就是专门针对这一功能的演示,它提供了直接在Android Studio中运行的代码,帮助开发者理解和实践WebView与JavaScript之间的通信。 首先,我们来深入理解...

    unity3d中js调用C#类,混合调用

    在C#中,如果你有一个类想要被JavaScript调用,通常需要将其放在一个公共命名空间中,并使用`[assembly: UnityEngine.Scripting.RequiredComponent]`或者`[assembly: UnityEngine.Scripting.Preserve]`注解来确保...

    Javascript 设计模式系统讲解与应用视频资源地址.7z

    JavaScript设计模式是编程实践中的一种重要思想,它提供了一套经过时间考验的最佳实践,用来解决常见的编程问题和提高代码的可维护性、可扩展性和可复用性。在JavaScript这种动态类型的脚本语言中,设计模式尤其重要...

    javascript 原型模式实现OOP的再研究

    总结来说,JavaScript中的原型模式提供了面向对象编程的基础,但需要谨慎处理多层继承和方法调用,以避免潜在的问题。使用`_super`和`_this`等占位符并结合辅助函数可以有效地优化代码结构,提高可读性和可维护性。...

    使用javascript中VC模式开发记账页面

    此外,虽然这里没有提到“Model”,但在一个完整的VC模式中,Model通常是存储和管理应用程序核心数据的部分。在记账应用中,Model可能是一个对象,包含所有交易记录和账户余额。Controller与Model交互,获取或修改...

    Match在JavaScript中实现类似于Erlang的模式匹配

    Erlang中的模式匹配允许开发者在函数调用中解构数据结构,如列表和记录,以便于数据操作。在JavaScript中,虽然没有内置的模式匹配功能,但我们可以利用正则表达式和对象解构等特性来模拟Erlang的模式匹配行为。 ...

    javascript与后台c#相互调用

    6. **C#的Web方法**:在ASP.NET环境中,可以通过定义ASP.NET Web Form或MVC控制器的公共方法,使它们成为可被JavaScript调用的Web服务。这些方法通常带有`[WebMethod]`或`[HttpGet]`、`[HttpPost]`等特性。 7. **...

    Javascript 设计模式之构造函数模式.zip

    构造函数模式是JavaScript中的一种重要设计模式,用于创建对象。本文将深入探讨构造函数模式及其应用。 构造函数模式的核心在于使用函数来创建具有相似属性和方法的对象。在JavaScript中,函数可以作为构造函数来...

Global site tag (gtag.js) - Google Analytics