当前位置: 首页 > news >正文

做微信网站公司/长沙官网网站推广优化

做微信网站公司,长沙官网网站推广优化,网站建设公司 壹起航,专门做批发的网站吗看了阮一峰大神的博客,自己写了js面向对象这一部分的总结 js面向对象部分分为几个部分: 1.本文介绍面向对象–封装 2.面向对象–原型链 http://blog.csdn.net/github_34514750/article/details/51045708 3.面向对象–构造函数的继承 http://blog.c…

看了阮一峰大神的博客,自己写了js面向对象这一部分的总结
js面向对象部分分为几个部分:
1.本文介绍面向对象–封装
2.面向对象–原型链
http://blog.csdn.net/github_34514750/article/details/51045708
3.面向对象–构造函数的继承
http://blog.csdn.net/github_34514750/article/details/51336839
4.面向对象–非构造函数的继承
http://blog.csdn.net/github_34514750/article/details/51337015

ECMAScript支持面向对象编程,但不使用类或者接口。对象可以在代码执行过程中创建和增强,因此具有动态性而非严格定义的实体。在没有类的情况下,可以采用下列模式在创建对象。

1. 工厂模式

工厂模式的优点:
发明了一种函数,用函数来封装以特定接口创建对象的细节。
工厂模式的问题:
虽然解决了多个相似对象的问题,但却没有解决对象识别的问题。
工厂模式的语法

function createPerson (name,age,job) {var o = new Object();o.name = name;o.age = age;o.job = job;o.sayName = function(){alert(this.name);}return o;
}
var person1 = createPerson("wanghuan",22,"software engineer");
var person2 = createPerson("shuguang",22,"army");

2. 构造函数模式

构造函数模式的优点:
自定义的构造函数意味着将来可以把它的实例标识为一种特定的类型,这正是构造函数模式胜过工厂模式的地方。
构造函数模式的语法

function Person (name,age,job) {//构造函数,习惯性的第一个字母大写this.name = name;this.age = age;this.job = job;this.sayName = function(){alert(this.name);}//其实有this对象在,根本不用在执行代码前把函数绑定到特定对象上边
}
var person1 =  new Person("wanghuan",22,"software engineer");
var person2 = new Person("shuguang",22,"army");

构造函数模式的缺点:
构造函数主要问题就是每个方法都要在每个实例上重新创建一遍,这种方法创建函数,会导致不同的作用域链和标识符解析。
因此,用

function Person (name,age,job) {//构造函数,习惯性的第一个字母大写this.name = name;this.age = age;this.job = job;
}
function sayName(){alert(this.name);
}//把sayName()函数的定义转移到了构造函数外部,对象共享在全局作用域中定义的同一个函数
var person1 =  new Person("wanghuan",22,"software engineer");
var person2 = new Person("shuguang",22,"army");    

但还有缺点:
1. 全局作用域定义的函数每次被一个对象调用,全局作用域不是名副其实
2. 对象需要定义很多方法,要是全部都定义成全局函数,自定义的引用类型就丝毫无封装性可言。

3. 原型模式

缺点:所有属性的共享会导致所有实例默认一样的属性值,不合常理

创建的每个函数都有一个prototype(原型)属性,这个属性是一个指针,指向函数的原型对象。
prototype属性指向函数的原型对象
每次读取某个对象的某个属性的时候,需要执行搜索:
1.搜索对象实例本身,在实例中找到给定名字的属性,则返回属性的值,使用delete属性可以删除实例属性。
2. 若没找到,则继续搜索指针指向的原型对象。
言外之意,对象实例本身的属性优先。
ps:用hasOwnProperty来判断属性是否存在于实例中或者原型中
此图为添加实例属性的情况:
这里写图片描述
原型模式的语法

function Person () {
}
Person.prototype.name = "wanghuan";
Person.prototype.age = "22";
Person.prototype.job = "software engineer";
Person.prototype.sayName = function(){alert(this.name);
};var person1 = new Person();
var person2 = new Person();
person1.name = "shuguang";
alert(person1.name);//shuguang---先搜索实例对象,就返回
alert(person1.hasOwnProperty("name"));//true
alert(person2.name);//wanghuan--原型对象属性返回delete person1.name;//delete操作符删除实例属性
alert(person1.hasOwnProperty("name"));//false
alert(person1.name);//wanghuan--原型对象属性返回

原型模式更简单的语法
以对象字面量形式创建的新对象

function Person () {
}
Person.prototype = {name:"wanghuan",age : "22",job : "software engineer",sayName: function(){alert(this.name);}
};

4. 原型模式和构造函数模型的组合使用

//构造函数
function Person(name,age,job){this.name = name;this.age = age;this.job = job;this.friends = ["a","b"];
}
//原型对象
Person.prototype = {constructor:Person;sayName:function(){alert(this.name);}
}
var person1 = new Person("wanghuan",22,"software engineer");
var person2 = new Person("shuguang",22,"army");person2.friends.push("c");
alert(person1.friends);//a,b
alert(person2.friends);//a,b,c
alert(person1.sayName === person2.sayName);//true
//说明两者的函数指针相同
http://www.lbrq.cn/news/744535.html

相关文章:

  • 室内设计师简介/孝感seo
  • 专注网站建站/网络营销怎么做推广
  • 华为手机商城官网/seo技术教程
  • 深圳手机网站建设公司/广告推广免费平台
  • 申请网站平台怎么做/企业门户网站模板
  • 泰安网站制作推荐/今天今日头条新闻
  • 济南住房和房产信息网/seo中文含义
  • 石家庄工信部网站备案/经典软文案例标题加内容
  • 朋友要我帮忙做网站/武汉大学人民医院地址
  • 给周杰伦做网站/安卓aso优化排名
  • 黄色国内外网站/网络营销有哪些特点
  • asp.net做织梦网站/seo技术培训东莞
  • 能免费做微信群推广的网站/汕头网站设计
  • 网站怎么企业备案/搜索引擎优化与关键词的关系
  • 政府网站建设与管理官网/如何建立一个自己的网站啊
  • 教育培训官网/优化大师兑换码
  • 上海网站建设公司/seo网站营销公司哪家好
  • 西安 医疗网站建设/如何自制网站
  • 用明星名字做网站/seo属于运营还是技术
  • 跨境电子商务网站建设/网站制作公司官网
  • 做网站找哪个/廊坊百度推广电话
  • 网站后台文本编辑器/seo优化工具
  • 金启网站建设/找网络公司做推广费用
  • 网络在线培训网站建设方案/搜索引擎优化排名seo
  • 在建设部网站呢李可以看出需要什么时候考试/seo关键词排名优化哪好
  • 中土南方建设有限公司网站/seo引擎优化是什么
  • 深圳个人网站建设/营销网站
  • wordpress 响应速度慢/seo是什么意思 为什么要做seo
  • 网站页面统计代码是什么意思/苏州优化seo
  • 苏州专业网站设计/智能营销方法
  • 猫头虎AI分享|字节开源了一款具备长期记忆能力的多模态智能体:M3-Agent 下载、安装、配置、部署教程
  • 从数据表到退磁:Ansys Maxwell中N48磁体磁化指南
  • RecSys:排序中的融分公式与视频播放建模
  • 【案例】ECharts 环形图中心下移后,如何保持中间图片和文案居中
  • AI 在金融领域的落地案例
  • 数据结构初阶(16)排序算法——归并排序