任何一个函数都可以被当做构造函数使用!并且new了之后一定是返回一个对象,这个对象有两种可能,第一种,return中返回的不是一个对象(包括数组,因为它也是一个对象,不包括函数,因为函数也是一种对象)(不是一个对象指返回一个变量值之类的)或者没有返回(实际上返回undefined 也不是一个对象),那么这样的话返回的就是未被初始化的this对象,return后面的返回值被自动忽略。第二种,若返回一个对象a的话则new处理的this被屏蔽掉并且返回该对象a 。这些跟构造函数里面有无this无关,有this只是对this对象进行初始化,当然返不返回只看return后面的值。
var g=new function(){return {name:'fff'}}
-->g input {name:'fff'};
function f(){this.name='fff';var name='ol';return name;}
var b=new f();
返回this对象
依据第一条可以实现代码的重构(有两个功能)该函数作为构造函数使用时,它提供返回对象功能,当作一般函数使用时返回一般值。
function f(){this.name='bob';this.age='30';
return 'fff'
}
var a=new f();
a ->{name:'bob',age:30};
var b=f();
b ->'fff';
注意,a与b返回值不一致。
function g(){this.name='bob';this.age='30';
return function(){}
}
var c=new g();
c ->function(){}
再举个列子
function f(){if(typeof l=='undefined')
l=this;//this是new的对象,此时将它的值赋给刚创建的全局变量l(可以理解成c语言当中的将该对象的地址赋给它,如图)
return l;}
new了两次之后,指向如图,可以验证,将l指向一个新的对象,则a b指向不变,说明并不依赖于l这个全局变量,使a==b 返回true 验证如下
- 大小: 8 KB
- 大小: 21 KB
分享到:
相关推荐
理解 `this` 的行为有助于避免常见的陷阱,如闭包中的 `this` 问题,以及在异步操作中可能出现的 `this` 指向问题。 总的来说,`this` 是 JavaScript 中一个关键的特性,它提供了对象间的关联和方法调用的上下文。...
在JavaScript开发中,使用jQuery的$(this)在原生态函数中可能会出现无效的问题,本文将对此进行详细的分析和解决方法的介绍。 一、问题描述 在JavaScript开发中,我们经常使用jQuery来简化我们的代码,但是当我们...
在JavaScript中,`this`关键字是一个至关重要的概念,它在不同上下文中有着不同的指向。`this`在JavaScript中并不像其他静态类型语言(如Java或C++)中的指针那样工作,而是根据函数调用的方式动态确定其值。以下是...
### 详解Javascript中的`this`指针 在深入探讨`this`指针之前,我们首先应当...通过掌握`this`的动态性质和作用域规则,开发者可以避免常见的错误,如`this`未按预期引用对象的问题,从而写出更加健壮和可维护的代码。
JavaScript中this的指向还没搞明白?来这看看 你就懂啦~
在JavaScript编程语言中,`this`关键字是一个至关重要的概念,它常常引发初学者...通过掌握上述知识点,你应该能够更好地应对实际开发中的`this`问题。不过,`this`的使用还需要结合实际场景和经验,才能真正熟练运用。
在没有特定上下文的情况下,如全局环境中直接调用函数,`this`会默认绑定到全局对象(浏览器环境下是`window`,Node.js中是`global`)。在严格模式下,`this`会绑定到`undefined`。 ```javascript function fn() { ...
在JavaScript编程中,`this`关键字是一个至关重要的概念,它表示...了解这些基本规则后,处理JavaScript中的`this`指向问题将变得更加容易。在编写代码时,正确理解和使用`this`是避免错误和提高代码可读性的重要步骤。
JavaScript中的`this`关键字是编程过程中经常会遇到的一个关键概念,尤其在面向对象编程中起着至关重要的作用。`this`的值取决于它被调用时的上下文,而不是定义时的位置,这使得它有时会显得有些复杂。在这个深入...
#### 一、常见的`this`指向问题 在JavaScript中,`this`关键字是一个非常重要的概念,它根据上下文的不同而具有不同的含义。理解`this`的指向对于编写可维护性和高效性的代码至关重要。下面我们将详细介绍几种常见...
JavaScript中的`this`指向问题是一个常见且重要的概念,对于理解和编写高效、无错误的JavaScript代码至关重要。`this`关键字在JavaScript中表示当前上下文的对象,它的指向不是固定的,而是根据函数调用方式的不同而...
### JavaScript中的`this`用法详解 在JavaScript中,`this`关键字的使用十分常见,但也是最容易引起混淆的部分之一。正确理解`this`的工作原理对于编写高效、可靠的代码至关重要。本文将深入探讨`this`在不同上下...
JavaScript中的`this`关键字是程序设计中的一个核心概念,它在不同上下文环境中有着不同的指向,这使得理解和掌握`this`的用法至关重要。在JavaScript中,`this`的值取决于函数调用的方式,而不是定义的方式,这为...
JavaScript中的`this`关键字是一个非常重要的概念,它在不同的上下文中具有不同的指向。理解`this`的指向对于编写高效和可维护的JavaScript代码至关重要。在本文中,我们将深入探讨`this`在各种函数调用场景下的行为...
通过以上步骤,应能解决“No compatible source was found for this video”的问题,实现videojs播放RTMP流。在实际操作过程中,可能会遇到其他具体问题,这时需要根据错误提示进行排查,确保所有环节都正确无误。
在本话题中,我们将深入探讨JavaScript中的类继承,并特别关注`this.callParent`这个方法,它是如何被用来调用超类方法的。 首先,让我们了解JavaScript中的构造函数。构造函数是一种特殊的函数,用于创建和初始化...
在JavaScript编程中,`this`关键字是一个非常关键的概念,它表示当前上下文中的对象引用。在不同的场景下,`this`的指向会有所不同,这在理解JavaScript运行机制时非常重要。以下将详细介绍标题和描述中提到的`this`...
在JavaScript中,`this`关键字是一个非常重要的概念,它用于引用当前上下文中的对象。`this`的值在运行时确定,并且根据函数被调用的方式而改变。下面我们将深入探讨`this`的使用方法。 1. **全局作用域与浏览器...
ion(){ console.log(this.x);...理解并熟练运用this是掌握JavaScript面向对象编程的关键,也是解决许多复杂问题的基础。在实际开发中,根据不同的场景选择合适的方式来处理this,可以避免很多不必要的困扰。