`

一道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插件来实现的项目,主要用于展示公司的发展历程,通过水平滚动的时间轴形式进行呈现。这个特效可能包含多个阶段或者...

    常见的 Vue.js 十大面试题及技术要点分析

    常见的 Vue.js 十大面试题及技术要点分析常见的 Vue.js 十大面试题及技术要点分析常见的 Vue.js 十大面试题及技术要点分析常见的 Vue.js 十大面试题及技术要点分析常见的 Vue.js 十大面试题及技术要点分析常见的 Vue...

    js基础知识测试题-答案.docx

    本资源是 JavaScript 基础知识测试题,包含选择题和程序题,共 50 道选择题和 4 道程序题,供员工考核使用。下面是对每道题的答案解析: 1. 下面符合一个有效的 JavaScript 变量定义规则的是?(A)答案解析:...

    使用JavaScript编写的语法分析器

    JavaScript语法分析器是一种用于解析JavaScript源代码的工具,它能够将源代码分解成一系列符合语法规则的结构,这些结构通常被称为语法树或抽象语法树(AST)。在本项目中,这个语法分析器是基于LL(1)文法构建的,...

    js面试题面试题面试题

    根据给定的文件信息,以下是对每一道JS面试题的知识点进行详细解析: ### 第一题:编写一个方法求一个字符串的字节长度 #### 解析: 在这道题目中,我们需要编写一个函数来计算字符串的字节长度。这里的重点在于...

    JS数据分析插件

    JS数据分析插件是利用JavaScript语言为网页提供数据可视化和分析功能的工具,它们通常能够帮助开发者高效地创建各种类型的数据图表,如柱状图、折线图、饼图、散点图等,以直观地展示复杂的数据。 在JS数据分析插件...

    100道Vue.js 面试题(含答案).pdf

    Vue.js是一种渐进式JavaScript框架,主要用于构建用户界面。它是由尤雨溪创建,并且是目前前端开发中非常流行的技术之一。Vue.js的面试题涉及到多个方面,包括路由管理、状态管理、组件通信、指令使用等,这些都是...

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

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

    ArcGIS API for JavaScript 4.14 进阶之空间分析(附源码)

    ArcGIS API for JavaScript 4.14 空间分析(本示例展示了空间分析的包含关系,控制缓冲区内点位的显隐)

    arcgis js api最优路径分析

    本项目聚焦于利用ArcGIS JS API 实现最优路径分析,这是一种在网络图层中寻找成本最低、时间最短或者效率最高的路径的方法。这在物流配送、交通规划、紧急救援等诸多领域有着广泛的应用。 首先,我们要理解ArcGIS ...

    战胜Javascript必做练习50题

    《战胜Javascript必做练习50题》是一本专注于提升Javascript编程技能的实用教程书籍。书籍通过50个精心挑选的程序实例,旨在帮助具有一定HTML和Javascript基础的读者,通过实际操作和思考题来加深理解和提升编程水平...

    基于ArcgIs api for js 的路径分析例子

    在"基于ArcGIS api for js的路径分析例子"中,我们需要完成以下步骤: 1. **设置地图基础:** 使用ArcGIS API创建地图对象,这里我们选择百度瓦片地图作为底图。这可以通过配置地图的basemap属性为自定义的瓦片服务...

    JS逆向练习题100题

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

    javascript作业题答案

    在这个"javascript作业题答案"的压缩包中,我们可以期待找到一系列与JavaScript相关的练习题及其解答,这对于学习和掌握JavaScript的重要知识是非常有帮助的。 首先,JavaScript的核心知识点包括变量、数据类型、...

    js随机生成一个口算题库

    在JavaScript(JS)和HTML中创建一个口算题库是一个常见的教育应用,它可以帮助孩子们练习基本的算术技能。这个项目的核心目标是生成一个包含20道口算题的列表,确保答案总是非负数,并且提供一个刷新按钮来重新生成...

    JS.HW-某公司招聘JS程序员的上机题.rar

    JavaScript(简称JS)是Web开发中的重要脚本语言,尤其在前端领域,它扮演着不可或缺的角色。本上机题是某公司招聘JS程序员时使用的,旨在考察应聘者的基础知识、编程能力和问题解决能力。这份试题可能包括了...

    JavaScript常见面试题.pdf

    JavaScript常见面试题

    答案 js笔试题.docx

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

Global site tag (gtag.js) - Google Analytics