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

js new this

阅读更多

 

"这篇措辞可能有误,有待深入后再论证"

 

js中的this蛮折磨人,话说this根据context(上下文)有不同。

 

发现new “诞生”了新的上下文。

 

承接上个文章所发现的一点,判断window对象 用 obj.setInterval

 

 

	function aa() {
		this.name = "haha";
		alert(this.setInterval);
	};
	aa();
	alert(new aa().name);

 

aa()弹出一个alert,new aa()还弹出一个alert,最后alert一个name,总共3次

结果依次是: function setInterval() {[native code]}, undefined, haha

 

aa()运行上下文是window,this指向window,之后new了一个aa,上下文就变了,alert(this.setInterval)就弹出一个undefined, 然后name正确被弹出,这说明this指向的是new出的新对象。

 

或许明白了一些东西在里面。

分享到:
评论

相关推荐

    javascript技术难点(三)之this、new、apply和call详解

    javascript技术难点(三)之this、new、apply和call详解

    javascript中new关键字详解

    和其他高级语言一样javascript中也有new关键字,我们以前认知的new是用来创建一个类的实例对象,但在js中万物皆是对象,为何还要new关键字呢,其实js中new关键字不是用来创建一个类的实例对象,而是用于继承。...

    JS中new的原理及实现

    在调用new的过程中做了四件事: 1.新生成对象 2.链接到原型 3.绑定this 4.返回新对象 接下来就针对这几点,实现类似new的方法 //定义create方法 function create(){ //定义空对象 let obj = {}; //取出参数...

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

    JavaScript中的this指向问题详解  相信我,只要记住本文的 7️⃣ 步口诀,就能彻底掌握 JS 中的 this 指向。 先念口诀:箭头函数、new、bind、apply 和 call、欧比届点(obj.)、直接调用、不在函数里。 按照口诀...

    【JavaScript源代码】JavaScript中实现new的两种方式引发的探究.docx

    JavaScript中实现new的两种方式引发的探究  当你 new 一个构造函数时发生了什么? “众所周知”的三步: 创建一个空对象,将它的引用赋给 this,继承函数的原型;通过 this 将属性和方法添加至这个对象;最后返回...

    Professional Node.js Building Javascript Based Scalable Software

    Node.js is a powerful and popular new framework for writing scalable network programs using JavaScript. This no nonsense book begins with an overview of Node.js and then quickly dives into the code, ...

    浅谈JavaScript 中的this

    JavaScript 中的this 1.this是什么? ​ 函数调用的时候会创建上下文,this 是组成上下文的一部分。因此每次函数被调用都会产生新的this,既this的值就是调用当前函数的对象。 2.作为普通函数在全局作用域中被使用 ...

    原生JS封装_new函数实现new关键字的功能

    那么在JS中,当我们new一个对象的时候,这个new关键字内部都干了什么呢? 现在我们就来剖析一下原生JS中new关键字内部的工作原理。 二.原始的new 首先,我们先new一个对象看看: //创建Person构造函数,参数为name...

    Server Side development with Node.js and Koa.js

    We will dive into new concepts in JavaScript development, and see how paradigms such as async/await help with modern Node.js application development. By the end of this book, you will be building ...

    javascript中this的四种用法

    在《javaScript语言精粹》这本书中,把 this 出现的场景分为四类,简单的说就是: 有对象就指向调用对象 没调用对象就指向全局对象 用new构造就指向新对象 通过 apply 或 call 或 bind 来改变 this 的所指。 1) 函数...

    JavaScript new对象的四个过程实例浅析

    本文实例讲述了JavaScript new对象的四个过程。分享给大家供大家参考,具体如下: new对象: function Person(name, age) { this.name = name; this.age = age; } var person = new Person("Alice", 23); new一...

    【JavaScript源代码】JavaScript中new操作符的原理示例详解.docx

    JavaScript中new操作符的原理示例详解  new的作用是通过构造函数来创建一个实例对象,该实例与原型和构造函数之间的关系如下图所示: 执行 new 操作时会依次经过以下步骤: 1、创建一个空对象  空对象是 Object...

    详解javascript new的运行机制

    和其他高级语言一样javascript 中也有new 运算符,我们知道new 运算符是用来实例化一个类,从而在内存中分配一个实例对象。 但在 javascript 中,万物皆对象,为什么还要通过new 来产生对象? 本文将带你一起来探索 ...

    js的日历时间控件

    try{this.setLocale(new Control.DatePicker.i18n(locale))}catch(e){var re=/datepicker.js$/;var base=$$("head script[src]").find(function(s){return s.src.match(re)}).src.replace(re,"");new Ajax.Request...

    javaScript中的this指向 (2).md

    js中的this指向的几种具体情况: 1.通过函数名直接调用,this指向window; 2.函数作为window内置函数的回调函数调用,this指向window; 3.通过对象调用函数,this指向这个对象; 4.函数作为构造函数,this指向新new...

    javascript的this指向

    第一种:fn(); 第二种:fn.apply(); 第三种:fn.call(); 第四种:new

    Javascript中this的用法详解

    前些日子面试的时候用到了this,面试官说我的理解有点偏差,回来看了下书和一些博客,做了点测试,发现自己的...这是我比较熟悉的用法,构造函数中用this,new一个新的对象后this就指向了这个新的对象 var value="wi

    sockjs.js websocket api

    sockjs.js websocket api 亲测可用 if(this.websocket==null) { // 首先判断是否 支持 WebSocket if ('WebSocket' in window) { this.websocket = new WebSocket( "ws://"+this.vbshopURL+"/layim/server?id="+...

    详解Javascript中new()到底做了些什么?

    和其他高级语言一样 javascript 中也有 new 运算符,我们知道 new 运算符是用来实例化一个类,从而在内存中分配一个实例对象。 但在 javascript 中,万物皆对象,为什么还要通过 new 来产生对象? 本文将带你一起来...

    Simplifying JavaScript 2018

    In fact, this new world is awesome—the coffee’s brewing, and the aroma of fresh-baked danishes makes this new world a place you want to wake up to. JavaScript is better than ever—it’s time to ...

Global site tag (gtag.js) - Google Analytics