js好文

apply,call,bind:添加链接描述

js包装对象:添加链接描述

JS属性描述对象:添加链接描述

数据类型概述:添加链接描述

js语言的对象体系,不是基于类的,而是基于构造函数和原型链。JavaScript 语言使用构造函数(constructor)作为对象的模板。所谓”构造函数”,就是专门用来生成实例对象的函数。它就是对象的模板,描述实例对象的基本结构。一个构造函数,可以生成多个实例对象,这些实例对象都有相同的结构。

构造函数就是一个普通的函数,但是有自己的特征和用法。

var Vehicle = function () {
  this.price = 1000;
};
上面代码中,Vehicle就是构造函数。为了与普通函数区别,构造函数名字的第一个字母通常大写。
构造函数的特点有两个:
函数体内部使用了this关键字,代表了所要生成的对象实例。
生成对象的时候,必须使用new命令。

new命令的作用,就是执行构造函数,返回一个实例对象。
var Vehicle = function () {
  this.price = 1000;
};

var v = new Vehicle();
v.price // 1000

上面代码通过new命令,让构造函数Vehicle生成一个实例对象,保存在变量v中。这个新生成的实例对象,从构造函数Vehicle得到了price属性。new命令执行时,构造函数内部的this,就代表了新生成的实例对象,this.price表示实例对象有一个price属性,值是1000

为了保证构造函数必须与new命令一起使用,一个解决方法是,构造函数内部使用严格模式,即第一行加上,use strict;这样的话,一旦忘记使用new命令,直接调用构造函数就会报错。

function Fubar(foo, bar){
  'use strict';
  this._foo = foo;
  this._bar = bar;
}

Fubar()
// TypeError: Cannot set property '_foo' of undefined

上面代码的Fubar为构造函数,use strict命令保证了该函数在严格模式下运行。由于严格模式中,函数内部的this不能指向全局对象,默认等于undefined,导致不加new调用会报错(JavaScript 不允许对undefined添加属性)。

另一个解决办法,构造函数内部判断是否使用new命令,如果发现没有使用,则直接返回一个实例对象。

function Fubar(foo, bar) {
  if (!(this instanceof Fubar)) {
    return new Fubar(foo, bar);
  }

  this._foo = foo;
  this._bar = bar;
}

Fubar(1, 2)._foo // 1
(new Fubar(1, 2))._foo // 1

上面代码中的构造函数,不管加不加new命令,都会得到同样的结果。

new命令的原理:
使用new命令时,它后面的函数依次执行下面的步骤:
1:创建一个空对象,作为将要返回对象的实例。
2:将这个空对象的原型,指向构造函数的prototype属性。
3:将这个空对象赋值给函数内部的this关键字。
4:开始执行构造函数内部的代码。

也就是说,构造函数内部,this指的是一个新生成的空对象,所有针对this的操作,都会发生在这个空对象上。构造函数之所以叫构造函数,就是说这个函数的目的,就是操作一个空对象(即this对象),将其构造成需要的样子。

如果构造函数内部有return语句,而且return后面跟着一个对象,new命令会返回return语句指定的对象,否则,就不会管return语句,返回this对象。

var Vehicle = function () {
  this.price = 1000;
  return 1000;
};

(new Vehicle()) === 1000 // false

上面代码中,构造函数Vehicle的return返回一个数值。这时,new命令就会忽略这个return语句,返回构造后的this对象。

但是,如果return语句返回的是一个跟this无关的新对象,new命令就会返回这个新对象,而不是this对象,这一点需要特别注意。
var Vehicle = function (){
  this.price = 1000;
  return { price: 2000 };
};

(new Vehicle()).price // 2000

上面代码中,构造函数Vehicle的return语句,返回的是一个新对象,new命令就会返回这个新对象,而不是this对象。

JS面向对象—this关键字:添加链接描述

JS Storage接口:添加链接描述

window对象可以接收以下事件:
load事件发生在文档在浏览器窗口加载完毕时。window.onload属性可以指定这个事件的回调函数。

window.onload = function() {
  var elements = document.getElementsByClassName('example');
  for (var i = 0; i < elements.length; i++) {
    var elt = elements[i];
    // ...
  }
};
上面代码在网页加载完毕后,获取指定元素并进行处理。

JS 同源限制:添加链接描述

CORS:添加链接描述 添加链接描述 添加链接描述

JS数据类型—数组:添加链接描述

JS面向对象—Object对象的相关方法:添加链接描述

JS异步操作—概述:添加链接描述

JS异步操作—定时器:添加链接描述

JS Array 对象:添加链接描述

DOM—Node接口:添加链接描述 添加链接描述

DOM—Mutation Observer API:添加链接描述

DOM—Text节点和DocumentFragment节点:添加链接描述

DOM—属性的操作:添加链接描述

DOM—Element节点:添加链接描述

DOM—Document节点:添加链接描述

DOM—ParentNode接口,ChildNode接口:添加链接描述

js内存泄漏:添加链接描述

JavaScript 运行机制详解:再谈Event Loop:添加链接描述

Javascript模块化编程(一):模块的写法:添加链接描述

Javascript定义类(class)的三种方法:添加链接描述

Javascript异步编程的4种方法:添加链接描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值