`
换个号韩国红果果
  • 浏览: 48101 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类

this问题 js

    博客分类:
  • web
阅读更多
任何一个函数都可以被当做构造函数使用!并且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
分享到:
评论

相关推荐

    js中的this

    理解 `this` 的行为有助于避免常见的陷阱,如闭包中的 `this` 问题,以及在异步操作中可能出现的 `this` 指向问题。 总的来说,`this` 是 JavaScript 中一个关键的特性,它提供了对象间的关联和方法调用的上下文。...

    js原生态函数中使用jQuery中的 $(this)无效的解决方法.docx

    在JavaScript开发中,使用jQuery的$(this)在原生态函数中可能会出现无效的问题,本文将对此进行详细的分析和解决方法的介绍。 一、问题描述 在JavaScript开发中,我们经常使用jQuery来简化我们的代码,但是当我们...

    高手详解javascript中的this指针

    在JavaScript中,`this`关键字是一个至关重要的概念,它在不同上下文中有着不同的指向。`this`在JavaScript中并不像其他静态类型语言(如Java或C++)中的指针那样工作,而是根据函数调用的方式动态确定其值。以下是...

    详解Javascript 中的this指针

    ### 详解Javascript中的`this`指针 在深入探讨`this`指针之前,我们首先应当...通过掌握`this`的动态性质和作用域规则,开发者可以避免常见的错误,如`this`未按预期引用对象的问题,从而写出更加健壮和可维护的代码。

    javascript中this的指向问题总结

    JavaScript中this的指向还没搞明白?来这看看 你就懂啦~

    JavaScript中this关键字使用方法详解

    在JavaScript编程语言中,`this`关键字是一个至关重要的概念,它常常引发初学者...通过掌握上述知识点,你应该能够更好地应对实际开发中的`this`问题。不过,`this`的使用还需要结合实际场景和经验,才能真正熟练运用。

    Javascript中神奇的this

    在没有特定上下文的情况下,如全局环境中直接调用函数,`this`会默认绑定到全局对象(浏览器环境下是`window`,Node.js中是`global`)。在严格模式下,`this`会绑定到`undefined`。 ```javascript function fn() { ...

    JavaScript程序设计-javascript中this的指向问题.pdf

    在JavaScript编程中,`this`关键字是一个至关重要的概念,它表示...了解这些基本规则后,处理JavaScript中的`this`指向问题将变得更加容易。在编写代码时,正确理解和使用`this`是避免错误和提高代码可读性的重要步骤。

    深入理解JavaScript中的this关键字

    JavaScript中的`this`关键字是编程过程中经常会遇到的一个关键概念,尤其在面向对象编程中起着至关重要的作用。`this`的值取决于它被调用时的上下文,而不是定义时的位置,这使得它有时会显得有些复杂。在这个深入...

    js中常见this指向问题.md

    #### 一、常见的`this`指向问题 在JavaScript中,`this`关键字是一个非常重要的概念,它根据上下文的不同而具有不同的含义。理解`this`的指向对于编写可维护性和高效性的代码至关重要。下面我们将详细介绍几种常见...

    【JavaScript源代码】JavaScript中的this指向问题详解.docx

    JavaScript中的`this`指向问题是一个常见且重要的概念,对于理解和编写高效、无错误的JavaScript代码至关重要。`this`关键字在JavaScript中表示当前上下文的对象,它的指向不是固定的,而是根据函数调用方式的不同而...

    Javascript的this用法

    ### JavaScript中的`this`用法详解 在JavaScript中,`this`关键字的使用十分常见,但也是最容易引起混淆的部分之一。正确理解`this`的工作原理对于编写高效、可靠的代码至关重要。本文将深入探讨`this`在不同上下...

    JavaScript程序设计javascript中this

    JavaScript中的`this`关键字是程序设计中的一个核心概念,它在不同上下文环境中有着不同的指向,这使得理解和掌握`this`的用法至关重要。在JavaScript中,`this`的值取决于函数调用的方式,而不是定义的方式,这为...

    【JavaScript源代码】JavaScript函数this指向问题详解.docx

    JavaScript中的`this`关键字是一个非常重要的概念,它在不同的上下文中具有不同的指向。理解`this`的指向对于编写高效和可维护的JavaScript代码至关重要。在本文中,我们将深入探讨`this`在各种函数调用场景下的行为...

    No compatible source was found for this video. 解决方法

    通过以上步骤,应能解决“No compatible source was found for this video”的问题,实现videojs播放RTMP流。在实际操作过程中,可能会遇到其他具体问题,这时需要根据错误提示进行排查,确保所有环节都正确无误。

    Javascript类的继承,使用this.callParent调用超类方法

    在本话题中,我们将深入探讨JavaScript中的类继承,并特别关注`this.callParent`这个方法,它是如何被用来调用超类方法的。 首先,让我们了解JavaScript中的构造函数。构造函数是一种特殊的函数,用于创建和初始化...

    javascript 高级编程 this指向问题【1】.pdf

    在JavaScript编程中,`this`关键字是一个非常关键的概念,它表示当前上下文中的对象引用。在不同的场景下,`this`的指向会有所不同,这在理解JavaScript运行机制时非常重要。以下将详细介绍标题和描述中提到的`this`...

    JavaScript this使用方法图解

    在JavaScript中,`this`关键字是一个非常重要的概念,它用于引用当前上下文中的对象。`this`的值在运行时确定,并且根据函数被调用的方式而改变。下面我们将深入探讨`this`的使用方法。 1. **全局作用域与浏览器...

    JS中的this变量的使用介绍

    ion(){ console.log(this.x);...理解并熟练运用this是掌握JavaScript面向对象编程的关键,也是解决许多复杂问题的基础。在实际开发中,根据不同的场景选择合适的方式来处理this,可以避免很多不必要的困扰。

Global site tag (gtag.js) - Google Analytics