`

一道js题 的分析历程

阅读更多
var a = {n:1};a.x=a={n:2};  a.x 为什么等于 未定义啊 alz老大给讲讲呗
alz(25644652) 10:37:32
因为a.x赋值的瞬间a指向原来的对象,而第二句执行完毕,a就指向{n:2}了。
色色 -- 北京(449211678) 10:38:21
a.x 会首先执行?
alz(25644652) 10:38:24
a.x=a={n:2}这个连等式,两个a同进退
色色 -- 北京(449211678) 10:39:04
a.x 会先执行么?
色色 -- 北京(449211678) 10:39:18
a.x会先求值?
alz(25644652) 10:39:19
第一个等号肯定是后执行的,但是a.x会先执行性
色色 -- 北京(449211678) 10:39:20
么
alz(25644652) 10:39:26
正确
色色 -- 北京(449211678) 10:39:55
3q啊
如是-回归(420303167) 10:41:11
a.x=a;
a={n:2}
如是-回归(420303167) 10:41:14
?
如是-回归(420303167) 10:42:32
这样,a.x 也是Undefined
alz(25644652) 10:42:58
你这拆分了是啥意思?
色色 -- 北京(449211678) 10:43:41
赋值是从右到左的
如是-回归(420303167) 10:44:01
我的意思是说,var a = {n:1};a.x=a={n:2}; 的执行是否和var a = {n:1};
a.x=a;
a={n:2}这样造价呢
如是-回归(420303167) 10:44:38
等价
如是-回归(420303167) 10:46:38
我说的不明白 吗?
如是-回归(420303167) 10:49:07
我我感觉应该是这样的,
1、a=obj,
2、a.x=a,
3、a=obj,
这样,当a被重新赋值后,a原来的属性 a.x就被remove掉了
alz(25644652) 10:50:08
当然不等价了
alz(25644652) 10:50:51
请用chrome测试这段代码,并认真分析log的顺序:
var _a;
window.__defineSetter__("a", function(v){
console.log("write a");
_a = v;
});
window.__defineGetter__("a", function(){
console.log("read a");
return _a;
});

var obj1 = {n:1};
var obj2 = {n:1};
obj1.__defineSetter__("x", function(v){
console.log("[obj1]write x");
this._x = v;
});
obj1.__defineGetter__("x", function(){
console.log("[obj1]read x");
return this._x;
});
obj2.__defineSetter__("x", function(v){
console.log("[obj2]write x");
this._x = v;
});
obj2.__defineGetter__("x", function(){
console.log("[obj2]read x");
return this._x;
});

a = obj1;
a.x = a = obj2;
console.log(a.x);
如是-回归(420303167) 10:51:34
 ,先   去测测
 
分享到:
评论

相关推荐

    JavaScript上机实验题

    ### JavaScript上机实验题知识点概览 #### 一、JavaScript表达式和逻辑控制语句的使用 ##### 实验目的 1. **理解变量**: 学习如何声明变量、初始化变量及变量的作用范围。 2. **数据类型掌握**: 包括基本数据类型...

    JavaScript课堂习题答案

    JavaScript课堂习题答案JavaScript课堂习题答案JavaScript课堂习题答案JavaScript课堂习题答案JavaScript课堂习题答案JavaScript课堂习题答案JavaScript课堂习题答案JavaScript课堂习题答案JavaScript课堂习题答案...

    jQuery基于swiper.js公司发展历程水平时间轴特效.zip

    标题中的“jQuery基于swiper.js公司发展历程水平时间轴特效”表明这是一个使用jQuery库和swiper.js插件来实现的项目,主要用于展示公司的发展历程,通过水平滚动的时间轴形式进行呈现。这个特效可能包含多个阶段或者...

    在线考试连线题 js demo

    本示例"在线考试连线题 js demo"显然是一个用JavaScript编写的用于创建连线题的演示项目。 JavaScript是网页开发中的主要脚本语言,负责处理页面的动态行为。在本demo中,JavaScript将用于创建交互式的连线界面,...

    js2阶段的js第一章课后习题答案

    本压缩包文件“js2阶段的js第一章课后习题答案”是针对JavaScript学习者的一个资源,特别是那些正在进行js2阶段学习的学员。这个章节通常涵盖JavaScript的基础概念,包括语法、变量、数据类型、操作符、流程控制以及...

    JS逆向分析工具,v1.8.3版本

    JS逆向分析工具,v1.8.3版本

    H5+canvas+js实现连线题

    综上所述,"H5+canvas+js实现连线题"项目涵盖了前端开发的多个重要方面,包括HTML5 Canvas的图形绘制、JavaScript的事件处理和算法设计,以及良好的交互体验构建。对于想要提升Web开发技能或对互动教育应用感兴趣的...

    JS逆向练习题100题

    练完这100题,随便找个月入1W工作不闹着玩?

    91道js面试题,附必过答案.pdf

    为了提高 JavaScript 的性能,需要遵循严格模式、将 js 脚本放在页面底部、将 js 脚本将脚本成组打包、使用非阻塞方式下载 js 脚本、尽量使用局部变量来保存全局变量、尽量减少使用闭包、使用 window 对象属性方法时...

    js DuPont 杜邦

    这个"js Dupont 杜邦"项目可能是一个JavaScript库或者框架,它提供了交互式功能,如`mouseOver`、`mouseOut`事件以及`datatip`(数据提示),并支持节点的可伸缩性,使得用户能更直观地理解和探索数据。 1. **杜邦...

    js常见面试题

    JavaScript是Web开发中不可或缺的一部分,尤其在前端领域,它的地位尤为重要。...在压缩包文件“面试题”中,可能会包含这些概念的实际题目,建议逐一解答并深入研究,以提高自己的JavaScript技能。

    Javascript逆向分析 猿人学 第四题 雪碧图 样式干扰

    本文涉及Javascript逆向分析,针对猿人学第四题中雪碧图样式干扰进行探讨。所有内容仅供学习交流使用,严禁用于非法用途和商业目的。我们将不断优化内容,提供更丰富的解析和讨论,帮助大家更好地理解逆向分析技术。...

    JavaScript面试题集锦

    "JavaScript面试题集锦详解" 这篇文章涵盖了JavaScript的多个方面,包括eval函数、window和document对象、null和undefined的区别、数组的map方法、事件机制、use strict模式等。 eval函数 eval函数可以将字符串...

    JS在线答题选择结果代码.zip

    【标题】"JS在线答题选择结果代码.zip"中包含的是一个使用JavaScript实现的在线选择题答题系统的基础代码。JavaScript,通常简称为JS,是一种广泛应用于客户端网页开发的脚本语言,能够实现动态交互效果,无需刷新...

    答案 js笔试题.docx

    在HTML中,JavaScript可以通过以下几种方式应用:内联(直接在HTML元素内编写)、内部引用(在`<head>`标签内使用`<script>`标签引入外部JS文件)和外部引用(单独的JS文件,通过`<script>`标签引用)。 JavaScript...

    一套完整的javascript面试题(含有答案)

    JavaScript是一种广泛应用于Web开发的...以上是对这套JavaScript面试题的解析,涵盖的知识点全面,适合准备JavaScript面试的开发者进行自我检测和学习。理解并掌握这些知识点,对于提升JavaScript编程能力大有裨益。

    简单美观的选择题在线答题js代码

    在这个"简单美观的选择题在线答题js代码"项目中,我们可以看到一个利用JavaScript实现的在线答题系统,它具有用户友好的界面和流畅的交互体验。下面,我将详细讲解这个系统的几个关键知识点。 1. **HTML结构**: `...

    面试题练习题前端 JavaScript高级语法-字符串属性

    面试题练习题前端 JavaScript高级语法-字符串属性面试题练习题前端 JavaScript高级语法-字符串属性面试题练习题前端 JavaScript高级语法-字符串属性面试题练习题前端 JavaScript高级语法-字符串属性面试题练习题前端...

    Javascript考试题目选择题.doc

    Javascript考试题目选择题 本资源提供了15道Javascript考试题目选择题,涵盖了Javascript的基本语法、特性、循环语句、判断语句、事件、变量、函数、字符串操作、日期操作、DOM操作等知识点。 1. 写"Hello World...

    猿人学js逆向第二题补环境js

    猿人学js逆向第二题完整补环境js文件

Global site tag (gtag.js) - Google Analytics