在看The.Art.and.Science.of.JavaScript 的时候,看到了这个问题,就是在javascript中如何判断一个方法是new调用还是一般调用,在书中给出的代码是
function Element(){
if(this==window || 'Element' in this){
console.log("normal");
}else{
console.log("new");
}
}
可是这个代码不能解决两个问题:
1比如加上下面的代码:
Element.prototype.Element=1;
这时如果调用new Element()时,由于Element 已经存在于this里面,因此会打印出normal;
这个很好解决。我是这样写的:
function Element(){
if(this.__proto__==Element.prototype)
{console.log("new");}else{console.log("normal");}}
可是这时又有了第二个问题。
比如下面的代码:
var test= new Element();
test.temp=Element;
test.temp();
这时的调用,也应该是normal的调用,可是依然打印出new.
实在想不出来怎么解决第二种情况,因此发出来看那位能够解决这个问题.
分享到:
相关推荐
3. **JavaScript调用COM组件**:在JavaScript中,可以通过`new ActiveXObject(Progid)`来实例化一个Delphi编写的COM组件,其中`Progid`是组件的程序标识符。然后,可以调用该对象的公开方法和属性。 4. **Delphi...
例如,如果你想从VBScript调用一个名为`myFunc`的JavaScript函数,你可以这样做: ```vbscript Dim myObj Set myObj = Server.CreateObject("Scripting.Dictionary") myObj.Language = "JScript" myObj.Add "myFunc...
在JavaScript中,判断函数是通过new运算符创建实例的方式调用,还是通过普通函数调用,通常涉及到几种不同的方法和它们的局限性。下面将详细介绍每种判断方式及其适用场景和潜在问题。 首先,为了区分new调用和普通...
在JavaScript函数中调用COM组件的属性和方法是指在JavaScript代码中使用COM组件提供的属性和方法来实现各种功能。本文将介绍如何在JavaScript函数中调用COM组件的属性和方法,并提供一个实例演示如何使用COM组件来...
在C# WinForm应用中调用B/S架构中的JavaScript方法主要涉及到的是客户端与服务器端的交互问题。在传统的Web开发中,B/S架构通常由浏览器(客户端)与服务器(后端)组成,而C# WinForm是桌面应用程序,它们之间进行...
具体做法是在Flash中编写一个函数,该函数作为参数传递给`getURL()`,并指向一个包含JavaScript函数的URL。 - **在JavaScript中调用Flash**:使用HTML文档对象模型(DOM)中的特定语法。对于Internet Explorer浏览器...
"Android调用JavaScript.zip"这个压缩包可能包含了关于如何在Android中调用JavaScript代码的相关示例和资源。下面我们将深入探讨这一主题。 1. **WebView组件** Android中的WebView是一个可以加载和显示网页的控件...
首先,创建一个Java类,并标记其方法为`@JavascriptInterface`,这样它们就可以在JavaScript中被调用: ```java public class MyJavaScriptInterface { @JavascriptInterface public void callFromJs(String ...
在IT领域,有时候我们需要在Java或JavaScript代码中执行操作系统级别的命令,例如运行系统脚本、管理文件、控制进程等。这种需求通常通过调用命令行(CMD)来实现。本文将详细探讨如何在Java和JavaScript中调用...
本文将深入探讨“Java调用JavaScript代码”的技术实现,以及它在实际项目中的应用场景。 Java和JavaScript虽然名字相似,但它们是两种完全不同的编程语言,各自有其特定的用途。Java是一种静态类型的、面向对象的...
在现代的移动应用开发中,JavaScript与Android的交互是一个常见的需求,特别是在混合应用开发中,如使用Apache Cordova、React Native或Ionic等框架。本文将深入探讨如何通过JavaScript调用Android原生方法,以实现...
在C++中调用JavaScript是一项复杂但非常有用的技术,特别是在开发跨平台应用程序或者需要与Web交互的桌面应用时。MFC(Microsoft Foundation Classes)是微软提供的一个C++库,用于构建Windows应用程序。在这个场景...
- 在QT中定义一个槽函数,例如`handleJsCall`,然后使用`QWebChannel`来创建一个通信通道,让JavaScript可以调用这个槽函数。 - 首先,创建一个继承自`QObject`的C++类,暴露槽函数给JavaScript。比如,创建一个`...
在给定的例子中,“函数之间调用同一个对象方法”指的是在一个函数内部创建对象并调用其方法,然后在另一个函数中再次调用同一对象的相同或不同方法。这种模式常见于事件驱动的编程环境,例如游戏开发或GUI应用程序...
这个中间层通常是一个库或插件,它在JavaScript环境中暴露C++函数,使得JavaScript能够调用它们。 在MFC框架下,我们可以使用ActiveX控件或NPAPI(Netscape Plugin API)插件来创建这个中间层。ActiveX是微软开发的...
创建一个Web服务(ASMX)可以让JavaScript直接调用CS文件中的方法。首先,创建一个ASMX文件,并定义一个Web方法: ```csharp [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = ...
JavaScript中的函数对象调用模式是编程中至关重要的概念,它涉及到函数作为一等公民、作用域、闭包、原型链等多个核心知识点。这篇博客通过深入分析JavaScript中的函数调用模式,帮助开发者更好地理解和掌握这些概念...
这种方法可以在当前页面中加载其它页面的内容,但是需要注意的是,这种方法只能在同一个域名下使用。 方法二:使用Server Side Include(SSI) 使用SSI可以在服务器端包含其它页面的内容。例如: ``` <!--#include...
现在,你可以在网页的JavaScript代码中调用这个暴露的方法了。假设网页的HTML代码如下: ```html ()">调用C#方法 function callCSharpMethod() { var csharpObj = window.external; if (csharpObj && ...
首先,为了在JavaScript中调用exe文件,我们需要借助一些浏览器扩展API或者服务器端的技术。一种常见的方法是使用ActiveXObject,这是Internet Explorer(IE)浏览器特有的接口,它可以与Windows操作系统进行交互。...