JS 的 new 到底是干什么的?】的更多相关文章

大部分讲 new 的文章会从面向对象的思路讲起,但是我始终认为,在解释一个事物的时候,不应该引入另一个更复杂的事物. 今天我从「省代码」的角度来讲 new. --------------------------- 想象我们在制作一个策略类战争游戏,玩家可以操作一堆士兵攻击敌方. 我们着重来研究一下这个游戏里面的「制造士兵」环节. 一个士兵的在计算机里就是一堆属性,如下图: 我们只需要这样就可以制造一个士兵: var 士兵 = { ID: 1, // 用于区分每个士兵 兵种:"美国大兵"…
想象我们在制作一个策略类战争游戏,玩家可以操作一堆士兵攻击敌方. 我们着重来研究一下这个游戏里面的「制造士兵」环节. 一个士兵的在计算机里就是一堆属性,如下图: 一.荒蛮时代:对象是数据的集合 我们只需要这样就可以制造一个士兵: var 士兵 = { ID: 1, // 用于区分每个士兵 兵种:"美国大兵", 攻击力:5, 生命值:42, 行走:function(){ /*走俩步的代码*/}, 奔跑:function(){ /*狂奔的代码*/  }, 死亡:function(){ /*…
大部分讲 new 的文章会从面向对象的思路讲起,但是我始终认为,在解释一个事物的时候,不应该引入另一个更复杂的事物. 今天我从「省代码」的角度来讲 new. --------------------------- 想象我们在制作一个策略类战争游戏,玩家可以操作一堆士兵攻击敌方. 我们着重来研究一下这个游戏里面的「制造士兵」环节. 一个士兵的在计算机里就是一堆属性,如下图: 我们只需要这样就可以制造一个士兵: var 士兵 = { ID: 1, // 用于区分每个士兵 兵种:"美国大兵"…
原文:https://zhuanlan.zhihu.com/p/23987456?refer=study-fe 大部分讲 new 的文章会从面向对象的思路讲起,但是我始终认为,在解释一个事物的时候,不应该引入另一个更复杂的事物. 今天我从「省代码」的角度来讲 new. --------------------------- 想象我们在制作一个策略类战争游戏,玩家可以操作一堆士兵攻击敌方. 我们着重来研究一下这个游戏里面的「制造士兵」环节. 一个士兵的在计算机里就是一堆属性,如下图: 我们只需要这…
outline prototype 与 __proto__ function 与 object new 到底发生了什么 prototype 与 __proto__ 首先说下在JS中比较容易让人困惑的 prototype 和 __proto__ __proto__ 就是JavaScript中所谓的原型. 一个对象的 __proto__ 属性和自己的内部属性[[Prototype]]指向一个相同的值 (通常称这个值为原型),原型的值可以是一个对象值也可以是null(比如说Object.prototy…
​   "眼看他起朱楼,眼看他宴宾客,眼看他楼塌了",这句形容世态炎凉的话其实与智能手机市场更为相像.诺基亚的辉煌与没落.黑莓的强势与消声无迹.摩托罗拉的数次易手.小米的横空出世与崛起.苹果的踱步不前.山寨厂商的顽强生存--呈现各种态势的手机厂商,就像是一部包含万千生态的社会人情画卷. ​   而现在,又有企业按捺不住杀进了手机行业--TP-Link及雷蛇.它们并不是传统意义上的手机厂商,但又不是毫无根据的"门外汉"--已经在硬件领域积累了不少经验.一家是路由器大厂…
类数组对象:arguments 总所周知,js是一门相当灵活的语言.当我们在js中在调用一个函数的时候,我们经常会给这个函数传递一些参数,js把传入到这个函数的全部参数存储在一个叫做arguments的东西里面,那么这到底是什么东西? 在js中万物皆对象,甚至数组字符串函数都是对象.所以这个叫做arguments的东西也是个对象,而且是一个特殊的对象,它的属性名是按照传入参数的序列来的,第1个参数的属性名是’0’,第2个参数的属性名是’1’,以此类推,并且它还有length属性,存储的是当前传入…
其实js的this指向很简单.我们记住下面3种情况. this 指向的是浏览器中的window.代码如下: function fn(){ this.name='yangkun'; this.age=28; } 当我们执行fn()的时候,这个普通函数中的this指向到底是什么?答案就是指向的是浏览器中的window.(这里说明,这里实在浏览器下,如果是node环境不是). 如果这个时候我们对上面的函数进行进一步操作: function fn(){ this.name='yangkun'; this…
if ('0') alert("'0' is true");  if ('0' == false) alert("'0' is false");结果是,两次都 alert 了!那么 '0' 到底是 true 还是 false 呢? 答案是:在js做比较的时候,有这样的三条规则:如果比较的两者中有boolean,会把 boolean 先转换为对应的 number,即 0 和 1(false是0,1是true)如果比较的双方中有一方为number一方为string,会把…
现在很多人都会开车,想我当初学车的时候一会就可以上手了,开车简单,但是很多细节方面的就是得慢慢学习的过程,比如说汽车的AC键,我相信很多车主,包括老司机都不知道到底有哪些作用,只知道开空调,其实它的用处远远不止在这,今天就来给大家说说汽车AC键. 首先什么是A/C? A/C是aircondition的缩写,可以理解为空气控制或空气调节,它在汽车上的作用可以理解为是空调制冷开关.A/C灯亮代表空调压缩机启动,发动机负荷增加,油耗增加. 自动空调和手动空调的区别 现在的汽车空调分为手动空调和自动空调…
博客逐步迁移到,独立博客,原文地址,http://www.woniubi.cn/js_hide_tab_setinterval/ 我们一直都在说,JS的定时非常的不准确,但是很少有人去验证他,今天我就来验证一下.首先我们准备一个简单的例子. 简单例子 每隔一秒钟,然后输出离最开始的时间差距有多大. <script type="text/javascript"> var begin = (new Date()).getTime(); var i = 0; setInterva…
转载于:https://segmentfault.com/a/1190000014148611?utm_source=tag-newest 概念问题一:什么是webpack和grunt和gulp有什么不同 答案:Webpack是一个模块打包器,他可以递归的打包项目中的所有模块,最终生成几个打包后的文件.他和其他的工具最大的不同在于他支持code-splitting.模块化(AMD,ESM,CommonJs).全局分析. 概念问题二:什么是bundle,什么是chunk,什么是module? 答案…
关于this的指向,是一个令人很头疼的问题.但是,你运气好,碰到了我.老夫这儿有本祖传秘籍,看懂这个,妈妈再也不用担心你的this指向不对啦! 归根结底,this指向就一句话:谁最终调用函数,this指向谁!!! 关于这点,老夫有三言相赠: ① this指向的,永远只可能是对象!       ② this指向谁,永远不取决于this写在哪!而是取决于函数在哪调用.       ③ this指向的对象,我们称之为函数的上下文context,也叫函数的调用者. 下面,请看具体情况. ① 通过函数名(…
忘了原作者是谁了   自己也添加了一些东西  勉强可以观看一下 元素就不写了   可以自己添一下试试 先看这段代码 target.onclick = function(){ console.log(this); } 答案打印的一定是target对象本身 任何的话都需要语境,上下文环境,放在不同的地方,含义可能就大不相同. 当有一个人对着你大喊一声:开! 如果你手里有把枪,你会扣动扳机.如果你坐在汽车里,你会踩油门.如果你站在阳台,你可能会打开窗户. THIS身为一个关键字,它所指代的是此刻正在运…
DNS,DomainNameSystem或者DomainNameService(域名系统或者余名服务).域名系统为Internet上的主机分配域名地址和IP地址.用户使用域名地址,该系统就会自动把域名地址转为IP地址.域名服务是运行域名系统的Internet工具.执行域名服务的服务器称之为DNS服务器,通过DNS服务器来应答域名服务的查询. DNS就是域名服务器,他的任务就是确定域名的解析任何域名都至少有一个DNS,一般是2个.DNS是可以修改的…
背景 在写自动执行函数时 vm.$watch('datas', function() { console.log(vm.datas); }) (function () { console.log('test'); })() 出现莫名错误: Uncaught TypeError: vm.$watch(…)(…) is not a function 解决方法: vm.$watch('datas', function() { console.log(vm.datas); ); (function ()…
首先确定一点,this在声明时确定不了,在执行时才知道指向的谁!!! call() , apply(),bind()  方法的用法 比如下面一个例子: function fn(name,age){ alert(name); console.log( this ) } fn() //返回的肯定是window对象 因为是window调用的 fn.call({x:100},'zhangsan',12) //这个this就是指的{x:100} 这个对象,别问为啥,call这个方法的定义就是这个,name…
Linux RPM全称是“RedHat Package Manager”,最早是Red Hat公司开发的,后来在CentOS.Fedora.SUSE都用它.而rpm包则是软件编译完成后按照RPM机制打包起来的一个文件,可以用rpm命令安装的一个软件安装包,它省去了Linux软件安装中编译的步骤,安装成功后软件就可以用了.…
最近做Java Web项目,在.jsp页面和servlet之间request和response还是有些混淆,查阅了一些资料,总结如下,方便以后使用: 首先,servlet接口是最基本的,提供的五个方法也不多说了,关键是了解清楚什么是request,什么事response.  void destroy()           Called by the servlet container to indicate to a servlet that the servlet is being take…
javascript通过new操作符构建一个对象的步骤 <Javascript高级程序设计>的解释: 创建一个对象 将构造函数的作用域赋给新对象(把新对象作为构造函数的调用上下文,也就是this的指向) 执行构造函数中的代码 返回这个新对象 如果在构造函数里边return了一个对象,这个对象就会取代默认的返回,那么new操作符实例化出来的东西就不再和构造函数以及其原型有关系了 就相当于工厂模式直接创建对象一样 基于第5点,我实在弄不明白 javascript高级程序设计里边 第六章创建对象 工…
通俗点说他是jsp网站的服务器之一,就像asp网站要用到微软的IIS服务器,php网站用apache服务器一样,因为你的jsp动态网站使用脚本语言等写的,需要有服务器来解释你的语言吧,服务器就是这个功能.如果你的网页是纯html的,浏览器就可以直接解释查看效果,但是你的网页一但是.jsp .asp .php 等的动态网页时浏览器自己就无法解释了,需要上面说到的服务器.tomcat便可以解释jsp等java编写的网站.…
1.创建一个新的obj; 2.让obj_proto_=Func.prototype; 3.Func.call(obj);…
new 构造函数()执行顺序1.在堆中开辟对象内存空间, 记为obj2.在obj 中添加__proto__属性并指向 构造函数.prototype3.将构造函数中的this 指向obj4.执行构造函数内语句    若构造函数中没有reutrn 或return this或基本类型(number.string.boolean.null.undefined)的值,则返回obj在堆中的内存地址:若return 引用类型,则返回值为这个引用类型仿写new的行为 function People(name,…
在ArrayList,LinkedList,HashMap等等的内部实现增,删,改中我们总能看到modCount的身影,modCount字面意思就是修改次数,但为什么要记录modCount的修改次数呢? 大家发现一个公共特点没有,所有使用modCount属性的全是线程不安全的,这是为什么呢?说明这个玩意肯定和线程安全有关系喽,那有什么关系呢 阅读源码,发现这玩意只有在本数据结构对应迭代器中才使用,以HashMap为例: private abstract class HashIterator<E>…
6.总结性深一层次综合剖析接口概念[新手可忽略不影响继续学习] 通过以上的学习, 我们知道,所有定义在接口中的常量都默认为public.static和final.所有定义在接口中的方法默认为public和abstract.马克-to-win:当时Sun公司为什么要把java的接口设计发明成这样? 更多内容请见原文,原文转载自:https://blog.csdn.net/qq_44639795/article/details/101455696…
作者:方应杭 来源:知乎 你可能遇到过这样的 JS 面试题: var obj = { foo: function(){ console.log(this) } } var bar = obj.foo obj.foo() // 打印出的 this 是 obj bar() // 打印出的 this 是 window 请解释最后两行函数的值为什么不一样. ------- 初学者关于 this 的理解一直很模糊.今天这篇文章就要一次讲清楚了. 而且这个解释,你在别的地方看不到.看懂这篇文章,所有关于 t…
在理解继承之前,需要知道 js 的三个东西: 什么是 JS 原型链 this 的值到底是什么 JS 的 new 到底是干什么的 1. 什么是 JS 原型链? 我们知道 JS 有对象,比如 var obj = { name: "obj" }; 我们通过控制台把 obj 打印出来: 我们会发现 obj 已经有几个属性(方法)了.那么问题来了:valueOf / toString / constructor 是怎么来?我们并没有给 obj.valueOf 赋值呀. 上面这个图有点难懂,我手画…
你可能遇到过这样的 JS 面试题: var obj = { foo: function(){ console.log(this) } } var bar = obj.foo obj.foo() // 打印出的 this 是 obj bar() // 打印出的 this 是 window 请解释最后两行函数的值为什么不一样. ------- 初学者关于 this 的理解一直很模糊.今天这篇文章就要一次讲清楚了. 而且这个解释,你在别的地方看不到.看懂这篇文章,所有关于 this 的面试题,都是小菜…
this 的值到底是什么?一次说清楚 方应杭 ​ 杭州饥人谷教育科技有限公司 CTO 1,071 人赞同了该文章 你可能遇到过这样的 JS 面试题: var obj = { foo: function(){ console.log(this) } } var bar = obj.foo obj.foo() // 打印出的 this 是 obj bar() // 打印出的 this 是 window 请解释最后两行函数的值为什么不一样. ------- 初学者关于 this 的理解一直很模糊.今天…
在理解继承之前,需要知道 js 的三个东西: 什么是 JS 原型链 this 的值到底是什么 JS 的 new 到底是干什么的 1. 什么是 JS 原型链? 我们知道 JS 有对象,比如 var obj = { name: "obj" }; 我们通过控制台把 obj 打印出来: 我们会发现 obj 已经有几个属性(方法)了.那么问题来了:valueOf / toString / constructor 是怎么来?我们并没有给 obj.valueOf 赋值呀. 上面这个图有点难懂,我手画…