1. 1// Since JavaScript doesn‘t exactly have sub-class objects, prototype is a useful workaround to make a “base class” object of certain functions that act as objects. For example: 2var Person = function() {3this.canTalk = true;4 };5 6 Person.prototype.greet = function() {7if (this.canTalk) {8 console.log(‘Hi, I am ‘ + this.name);9 } 10 }; 1112var Employee = function(n...
var u = eval(‘(‘+user+‘)‘); 1.对于服务器返回的JSON字符串,如果jQuery异步请求没做类型说明,或者以字符串方式接受,那么需要做一次对象化处理,方式不是太麻烦,就是将该字符串放于eval()中执行一次。这种方式也适合以普通javascipt方式获取json对象,以下举例说明:var u = eval(‘(‘+user+‘)‘);为什么要 eval这里要添加(‘(‘+user+‘)‘) ”呢?原因在于:eval本身的问题。 由于json是以”{}”的方式来开始以及结束的...
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"> <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>js01_hello</title><meta name="author" content="Administrator" /><script type="text/javascript">/***基于原型的创建虽然可以有效的完成封装,但是依然有一些问题* 1、无法通过构造函数...
ylbtech-浏览器端-W3School-JavaScript-Browser: Navigator 对象 1.返回顶部1、Navigator 对象Navigator 对象Navigator 对象包含有关浏览器的信息。注释:没有应用于 navigator 对象的公开标准,不过所有浏览器都支持该对象。Navigator 对象集合集合描述plugins[]返回对文档中所有嵌入式对象的引用。该集合是一个 Plugin 对象的数组,其中的元素代表浏览器已经安装的插件。Plug-in 对象提供的是有关插件的信息,其中包括它所支持的...
JavaScript对象是一种复合值:它是属性和已命名值的集合。通过"."符号来引用属性值。当属性值是一个函数时,称为方法。①一段你常用但却未必明白其真正底层原理的代码:var s = "hello world!"; var word = s.substring(s.indexOf(" ")+1,s.length); 如前面所说,这里变量s只是一个字符串原始类型,它怎么会有属性(s.length)和方法(s.indexOf()、s.substring())呢?没错,这正跟我们正要介绍的包装对象有关。原因是:只要...
一、JavaScript 正则表达式概述正则表达式概述 - 正则表达式(Regular Expression): 由一些普通字符和特殊字符组成的,用以描述一种特定的字符规则的表达式 - 正则表达式常用于在一段文本中搜索、匹配或替换特定形式的文本。如:词语出现频率统计、验证字符串是否符合邮件格式、屏蔽一篇帖子中的限制性词语等650) this.width=650;" src="/upload/getfiles/default/2022/11/11/20221111052258654.jpg" title="web.png" />正则表达式...
document.defaultView或全局变量window——获取一个window对象。1)获取窗体信息innerHeight、innerWidth——获取窗体内容区域的高度、宽度。outerHeight、outerWidth——获取窗体的高度、宽度(包括边框和菜单条等);pageXOffset、pageYOffset——获取窗体从左上角算起水平/垂直滚动过的像素数;screen——返回一个描写叙述屏幕的Screen对象;screen.availHeight、screen.availWidth——屏幕上可供显示窗体部分的高度、宽度(排除...
1、Window对象的location属性引用的是Location对象,它表示该窗口中当前显示的文档的URL,并定义了方法来使窗口载入新的文档。Location对象的href属性是一个字符串,后者包含URL的完整版本。Location对象的assign()方法可以使窗口载入并显示指定的URL文档,相似的replace()方法在载入新文档之前会从浏览历史中把当前文档删除。2、Window对象的history属性引用的是该窗口的History对象。History对象是用来把窗口的浏览历史用文档和文...
偶然间遇到,需要在JS中解决类似于C#中的线程休眠问题,JS有Promise对象,可以帮助我们实现这一点,网上有很多类似文章,我这里列举一个使用示例: 定义休眠方法--使用Promise创建一个异步可等待的方法://设置JS休眠一定时间后执行的动作var sleep = function (millisecond) {returnnew Promise(resolve => {setTimeout(() => {resolve()}, millisecond)})}; 使用休眠方法--使用async和await,实现休眠等待效果://测试方法var te...
由于 JavaScript中没有类,对象充当着一系列集合的模板,包含着属性和方法,而每个对象中也有一个原型对象,可以存放共享方法和属性 。创建自定义类型的最常见方式,就是组合使用构造函数模式与原型模式。构造函数模式用于定义实例属性,而原型模式用于定义方法和共享的属性 //组合使用构造函数模式(构造函数设置自己的属性)和原型模式(原型设计那些共享的方法和属性)function Person(name,age,job){this.name=name;this.age=a...
谈到面向对象,我们之前学过Vb和C#,从抽象到封装再到继承和多态,面向对象的世界真的很好玩,但是JavaScript中的面向对象有些特殊,因为里面没有类,而且对象的创建方式也不同。 对象的创建大约有四种方式:使用new关键字创建、使用字面量创建、使用工厂方法创建、使用构造函数创建。 1、使用new关键字var box = new Object(); //创建一个 Object 对象 box.name = 'Lee'; //创建一个 name 属性并赋值 box.age = 100; //...
因为前几天做了一个promise对象捕获错误的面试题目,所以这几天又重温了一下promise对象。现在借这道题来分享下一些很基础的知识点。下面是一个面试题目,三个promise对象捕获错误的例子,返回结果有什么不同。 //使用throw添加错误事件var p = new Promise(function(resolve, reject) {resolve("ok");thrownew Error(‘error0‘);//setTimeout(function() { throw new Error(‘error1‘) }, 0);}); p.then(function(value){consol...
上一讲我们提出一个很好的思路,将一个类的可复用部分全部定义在prototype中,这样子类继承的时候可以很方便地通过prototype来继承;但是也带来一个问题就是子类在重写prototype中的属性时会改变所有实例的属性,这是因为父类和子类实例都共享同一个prototype;怎么解决呢?思路就是利用一个中间函数,具体请看代码:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-tra...
2. 完善地图 我们的地图中有空地,墙,钢,草丛,水,总部等障碍物。 我们可以把这些全部设计为对象。2.1 创建障碍物对象群 对象群保存各种地图上的对象,我们通过对象的属性来判断对象是否可以被穿过或被攻击。 Barrier.js: 1// 障碍物基类对象,继承自TankObject 2 Barrier = function () {3this.DefenVal = 1; // 防御力 4this.CanBeAttacked = true; // 是否可以被攻击 5}6 Barrier.prototype = new TankObject(...
JS中事件对象有很多种,兼容性参差不齐,这个对象封装了大部分所需的各种方法var EventUtil={addHandler:function(element,type,handler){ //添加事件if(element.addEventListener){ element.addEventListener(type,handler,false); //使用DOM2级方法添加事件}elseif(element.attachEvent){ //使用IE方法添加事件element.attachEvent("on"+type,handler);}else{element["on"+type]=handler; //使用DO...