`
achun
  • 浏览: 307123 次
  • 性别: Icon_minigender_1
  • 来自: 河南郑州
社区版块
存档分类
最新评论

再论在javascript中如何判断一个方法是new调用还是一般调用

阅读更多

这本来是一个老讨论了 http://www.iteye.com/topic/165475 可惜锁定了,回复不了

 

今天又想到弄这个事情,偶的记忆力很差,都忘了曾经讨论过这个事情,所以还是晕头转向了半个小时


后来JE上一搜,哦,原来讨论过

 

当再次看到笨笨狗的方法后,突然想到改造一下说不定就解决了

 

function Element(){
  if(this instanceof arguments.callee){
    console.log("new");
    var obj={};
    for(var a in this) obj[a]=this[a];
    return obj;
  }else{
    console.log("normal");
  }

//嘻嘻,测试吧
Element();
a = new Element;
a.Elements = Element;
a.Elements();
a = {b:{Elements:Element}}
a.b.Elements();

 

不知道还有其他问题没有,欢迎讨论

0
0
分享到:
评论

相关推荐

    JavaScript中判断函数是new还是()调用的区别说明

    具名函数的各种调用方式 在之前篇幅中已经介绍过了。这篇看看如何判断一个函数是被new调用的,还是被其它方式调用的。

    JavaScript程序设计课件:函数的调用方式.pptx

    JavaScript程序设计 函数的调用方式 ...使用点语法可以调用一个方法。 5.2.2 函数的调用方式 2、函数的调用方式 call 和 apply 是 Function 的原型方法,它们能够将特定函数当做一个方法绑定到指定对象上,并进

    在c++中调用Javascript(MFC源码)

    在c++中调用Javascript(MFC源码),能够遍历页面中的JS元素,并能够调用其中的JS方法,相当强大!

    在JavaScript中实现链式调用的实现

    链式调用在 JavaScript 语言界很常见,如 jQuery 、 Promise 等,都是使用的链式调用。链式调用可以让我们在进行连续操作时,写出更简洁的代码。 new Promise((resolve, reject) => { resolve(); }) .then(() =...

    javascript中使用new与不使用实例化对象的区别

    我们先来看个实例 function Me(name,age,job){ this.name = name; this.age = age; this.job = job; } ...请问这以下两种实例化对象方式有什么区别呢?...JavaScript 中并没有真正的类,但JavaScript 中有

    【JavaScript源代码】JavaScript中的几种继承方法示例.docx

    JavaScript中的几种继承方法示例  1.原型链继承  原理: 子类原型指向父类实例对象实现原型共享,即Son.prototype = new Father()。 这里先简单介绍下原型 js中每个对象都有一个__proto__属性,这个属性指向的...

    javascript学习笔记.docx

    f) 继承:只是在查询一个属性时自动发生,而不会在写属性时发生,就是说单写一个父类的属性时,JavaScript环境会为对象本身创建一个同名的属性,从此该属性就覆盖了父类中的属性。 12) 创建一个数组可用 new Array()...

    JavaScript四种调用模式和this示例介绍

    JavaScript调用时除了声明时定义的形参外,每个函数接受两个附加参数:this 和arguments,this在面向对象编程中非常重要,它取决于调用模式。 JavaScript有四种调用模式,方法调用模式,函数调用模式,构造器调用...

    Prototype_1.6 JavaScript代码和中文帮助手册

     在prototype.js中,prototype对象是实现面向对象的一个重要机制。  每个函数就是一个对象(Function),函数对象都有一个子对象 prototype对象,类是以函数的形式来定义的。prototype表示该函数的原型,也表示一...

    javascript文字编辑器

    一个可以用的js文字编辑器, 调用方法:<input type="hidden" name="new" maxlength="5000"> <script type="text/javascript" src="KindEditor.js"> <script type="text/javascript"> var editor = new ...

    rpc:调用在其他JavaScript窗口进程中运行和运行的函数

    WranggleRpc是一个JavaScript / TypeScript库,用于调用在其他窗口/进程中运行的代码。 这在构建时特别有用: 具有内容页面窗口,弹出窗口和必须交互的服务/背景窗口的浏览器扩展 电子应用程序及其节点和浏览器...

    JavaScript面向对象

    在JavaScript中定义JavaScript对象有两种方式: 方式一: var Book ={ getBookName:function(){ alert("获取书的名称") ; } }; 方式二 var oBook = function(){}; oBook.getBookName=...

    javascript 函数限制调用代码

    函数: 代码如下: function throttle(fn,ms) { ... } 参数 fn : 传入的函数/方法 参数 ms:每次函数调用时的间隔(毫秒为单位),如输入2000,函数在2秒内不会重复触发。 附一初始化例子 代码如下: document.getElementById

    javascript简单链式调用案例分析

    本文实例讲述了javascript简单链式调用方法。分享给大家供大家参考,具体如下: jQuery用的就是链式调用。像一条连接一样调用方法。 链式调用的核心就是return this;,每个方法都返回对象本身。 下面是简单的模拟...

    一个精美的javascript弹出层提示框,支持任意浏览器,基于jquery,定位准确!

    一个精美的javascript 对话,在N种浏览器测试下均无问题,调用方便,支持传入iframe,文字信息,可以设置是否调用层遮罩,是否可以拖动。定位准确, 调用方法,var dialog = new Dialog({ text: "我是内容", w: 300, ...

    不得不看之JavaScript构造函数及new运算符

    当通过new来创建一个新对象时,JS底层将新对象的原型链指向了构造函数的原型对象,于是就在新对象和函数对象之间建立了一条原型链,通过新对象可以访问到函数对象原型prototype中的方法和属性。 和其他高级语言一样 ...

    go-node:使用Node.js在Go中运行Javascript

    去节点 使用Node.js在Go中运行Javascript。正在安装 go get -u github.com/tidwall/go-node例子创建一个Node.js VM并运行一些Javascript。 vm := node . New ( nil )vm . Run ( "iLoveTheJS = true" );youLoveIt := ...

    JavaScript使用function定义对象并调用的方法

    JS中你可以通过函数的方式定义对象,下面的JS代码定义了一个movie的函数对象,然后通过new的方法声明对象,调用起来也非常简单。 [removed] function movie(title, director) { this.title = title; this....

    【JavaScript源代码】JavaScript中的Proxy对象.docx

    handler: 一个通常以函数作为属性的对象,各属性中的函数分别定义了在执行各种操作时代理proxy的行为。  描述 Proxy用于修改某些操作的默认行为,也可以理解为在目标对象之前架设一层拦截,外部所有的访问都...

Global site tag (gtag.js) - Google Analytics