JS中new都是干了些什么事情

var Person = function(name){

this.name = name;

this.say = function(){

return "I am " + this.name;

};

}

var nyf = new Person("nyf");

nyf.say();

1、创建一个空对象,并且this变量引用这个空对象,同时还继承了该函数的原型;

2、属性和方法都被加入到this引用的对象当中;

3、新创建的对象由this引用,并且最后隐式的返回this;

var obj  = {};
obj.__proto__ = Base.prototype;
Base.call(obj); 
时间: 2024-10-03 13:40:07

JS中new都是干了些什么事情的相关文章

js中的new()到底做了些什么??

要创建 Person 的新实例,必须使用 new 操作符.以这种方式调用构造函数实际上会经历以下 4个步骤:(1) 创建一个新对象:(2) 将构造函数的作用域赋给新对象(因此 this 就指向了这个新对象) :(3) 执行构造函数中的代码(为这个新对象添加属性) :(4) 返回新对象. new 操作符 在有上面的基础概念的介绍之后,在加上new操作符,我们就能完成传统面向对象的class + new的方式创建对象,在JavaScript中,我们将这类方式成为Pseudoclassical.基于上

第22篇 js中的this指针的用法

前面把js的相关知识总结了下,今天把js中的上下文的this,对于强类型语言,this的用法非常的单一,因为他们没有js特有的动态绑定. 首先看下面代码: function funcA() { this.name = "hello"; console.log(this.name); this.show = function() { console.log(this.name); } } funcA();// 1.hello var a = new funcA();//2.hello a

js中的操作符

写在前面 js语法 DOM对象(把body,div,p等节点树看成一个对象) BOM对象(把浏览器的地址栏历史记录DOM等装在一个对象) 浏览器是宿主,但js的宿主不限于浏览器,也可以是服务器,如node.js. 运算符: //js中拼接运算符 console.log(2+3); console.log('hello'+''+'world'); console.log(2+3+4+'haha'+5+6);//9haha56,一旦碰到非法数字后,后面的一律理解为“拼接” 例如 var num1=5

js中的new关键字都干了些什么?

new 操作符 在有上面的基础概念的介绍之后,在加上new操作符,我们就能完成传统面向对象的class + new的方式创建对象,在javascript中,我们将这类方式成为Pseudoclassical.基于上面的例子,我们执行如下代码   var obj = new Base(); 这样代码的结果是什么,我们在Javascript引擎中看到的对象模型是: new操作符具体干了什么呢?其实很简单,就干了三件事情. var obj  = {}; obj.__proto__ = Base.prot

【一周读书】哲学家,你们都干了些什么?

书籍:<哲学家们都干了些什么> 在读这本书之前,我对哲学的印象是这样的: 哲学似乎和宗教有点关系?似乎在解决人的精神痛苦方面的问题?哲学就是一大堆难懂并且无用的理论!我要是和同学谈哲学肯定会被无情地嘲笑.但哲学看问题的眼光似乎很有趣?哎呀!我害怕翻哲学书! 看到了吧,我对哲学的印象就是这么混乱.直到这本书撞进我生活,作者提袋瓜子坐在我桌前,把有关哲学所有好玩的.有趣的.有用的故事.理论在几包瓜子的时间就讲清楚了. 现在就来讲讲我的收获. 作者最开始是讲宗教的发展,基督教怎样从一个小小的不出名的

swoft| 源码解读系列二: 启动阶段, swoft 都干了些啥?

date: 2018-8-01 14:22:17title: swoft| 源码解读系列二: 启动阶段, swoft 都干了些啥?description: 阅读 sowft 框架源码, 了解 sowft 启动阶段的那些事儿 小伙伴刚接触 swoft 的时候会感觉 压力有点大, 更直观的说法是 难. 开发组是不赞成 难 这个说法的, swoft 的代码都是 php 实现的, 而 php 又是 世界上最好的语言, swoft 的代码阅读起来是很轻松的. 之后开发组会用 系列源码 解读文章, 深入解析

《哲学家们都干了些什么》——林欣浩

<哲学家们都干了些什么>--林欣浩 我们不是号称"世界上最智慧的民族"吗?为什么到处都回荡着对思考者的排斥和嘲笑呢? [是不是像尼采说得那样,弱者不想别人变强呢?还是我们对哲学的误解?我们这个民族从来不乏思考者,而哲学是智慧之书,我们有什么理由排斥呢?我们追问生命的意义,正视自己的灵魂,难道没有必要吗?难道要到了将死的那一刻才醒悟?我这一辈子看清了什么?得到又失去了什么?活了一辈子的含义在哪里?......太多问题了.我不得不去思考,不然我只是一堆物质.] 亚历山大的马其顿

js中的总结汇总(以后的都收集到这篇)

点1:js中的比较字符串是否相等,js中是用"=="这个来判断是否相等,这点跟java中不一样,java中是.equals()这种方法. 在之前写的ajax的demo中,因为用了.equals()来比较两个密码是否相等,找了好久都没找到原因.所以切记js中是用“==”,而不是.equals()方法. 实例: <script type="text/javascript"> function checkPassword(){ var pass1 = docu

在JS中,一切东东其实都是对象

对象是组成JavaScript的基本单元,在JS中,一切东东其实都是对象,而且功能非常强大,它不仅风格独特,功能也与众不同. 一.引用(reference) 引用的概念是JS的基础之一,它是指向对象实际位置的指针.见下面的例子: var items = new Array("abc","def","hig"); //创建此数组的引用 var Ref = items; items.push("klm"); alert(Ref.l