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

wordpress 整合js/成都百度推广优化创意

wordpress 整合js,成都百度推广优化创意,中国沈阳网站在哪里下载,上海十大建筑设计事务所面向对象是javascript核心内容之一 首先讨论创建对象几种常见的方式:(1) 最经典,最简单的方法.利用object var onew Object();//创建对象;o.namejack;//添加属性o.sayNamefunction(){alert(this.name);}//添加方法;点评:这种方法明显不适合创建多个对象…

面向对象是javascript核心内容之一

首先讨论创建对象几种常见的方式:

(1) 最经典,最简单的方法.利用object

  var o=new Object();//创建对象;o.name='jack';//添加属性o.sayName=function(){alert(this.name);}//添加方法;点评:这种方法明显不适合创建多个对象。

(2)对象字面量形式:注意语法格式

var o={name:'jack',sayName:function(){alert(this.name);}

}

(3)一种设计模式 ‘工厂模式’

function createObject(name){

 var o=new Object();o.name=name;o.sayName=function(){alert(this.name);}return o;

}

  var obj=createObject('jack');   //创建对象alert(obj instanceof Object) //turealert(obj instanceof createObject);//false;alert(type obj )//Object

点评: 这种方式不难理解; 就是利用函数初始化一个Object对象,可以创建多个对象;

缺点:无法判断对象的具体类型, 都是object对象。

(4)  构造方法function Person(name){this.name=name;this.sayName=function(){alert(this.name);}

}

  var o=new Person('jack');//创建对象;alert(o.name);//访问属性o.sayName();//访问方法;alert(o instanceof Person);//truealert(o instanceof Object);//truealert(type o);  //object那么 这种构造方法是如何创建对象的?     var o=new Person('jack');//创建对象;  这时调用构造方法,同时自动创建(底层,看不见) var o=new Object();然后 this=o; 我们知道此时this就代表对象了,创建该对象的属性和方法(执行代码); 返回this对象(看不见);我们的o接受this的引用,指向了Object对象,同时也就可以访问属性和方法了! 4 构造方法结合原型------"默认"模式.我们知道通过构造函数创建对象是有一弊端的, 就是每一个创建的对象都有各自一份属性和方法; 这里的弊端就是方法的重复。另外我们一旦写好了构造函数,不能在外面为构造函数添加属性和方法。为了解决这个问题  javascript为我们提供了prototype的一个属性。值得注意的是这个构造函数(Function 对象)的属性,不是对象实例的属性(注意这句话)。具体是这样的:function Person(name){this.name=name;}Person.prototype.sayName=function(){alert(this.name);}同时使用构造函数和原型的好处是:可以节省内存。这种模式基本上就创建对象的默认模式。

5 其他方法;
现在问题来了:原型是怎么回事?
先看一张图---------来自《javascript高级程序设计》 这是很有意思的图
在这里插入图片描述

解释:在这里Person是一个构造函数, 我们看到有一个prototype属性,这个就是原型属性。他其实是一个指针, 指向一个对象,  这个对象叫原型对象  在这里是   Person.prototype  Person创建person1 person2 二个实例 ,图上我们可以看到实例中的 [[prototype]]属性,这是内部属性 (基本上不能外部访问) 这个对象是指向原型对象的(关键)。我们还可以看到原型对象的constructor属性是指向Person的。图中我们可以看到以上这些。 这样 Person.prototype.sayName=function(){alert(this.name);} 就是向原型对象中添加方法,我们通过person1.sayName();

为什么可以访问方法?这就与[[prototype]]有关了,首先person1先找实例属性有没有叫sayName的方法,结果没有,那么就通过 [[prototype]] 找到原型对象,查找有没有sayName的方法,结果有那么就拿到了。

因为一个构造函数只有一个原型对象与之对应,所有实例的[[prototype]]都是指向同一个原型对象的。所以原型里面的属性是公有属性,方法也是共有的。这个[[prototype]]在chrome ff中是 proto 我们这样

alert(person1.proto); 结果是[Object] ; 我们是不能通过实例直接为原型添加方法和属性的,只有通过构造函数才可以。值得注意的是Object.getPrototypeOf(‘object’);在这里 Object.getPrototypeOf(person1)

返回值是原型对象,这也是原型链继承的关键之处(这里先不讨论)。原型就是这样的。

一个问题:

说到原型,我们为一个构造函数添加方法时可以这样!

Person.prototype={

school:'一中',

saySchoo:function(){

    alert(this.school); 

}

//code

};

这是对象字面量形式,我们会看到一些程序员这样写。那么有问题吗?

有的,二个问题?

(1)constructor属性问题。看上面我们知道这样写本质上重写了原型对象.constructor没有说明指向谁,那么就是window,不再是Person。我们可以这样

Person.prototype={

school:'一中',

constructor:Person;

saySchoo:function(){

alert(this.school); }

//code};

我们一般这样就可以了,不过和原来原型有一点个区别,就是constructor为可枚举(for in打印出该属性)。原来是不可以枚举的。 要和原来原型对象一样,那么应该这样。

Person.prototype={

school:'一中',

saySchoo:function(){

alert(this.school); 

}

//code

};

Object.defineProperty(Person.prototype,“constructor”,{

value:Person,

enumerable:false; //不可以枚举;

});

这样就接近了。我们也可以不去设置,假定没有什么影响。

(2)第二个问题就是

function Person(){}

var o=new Person();

Person.prototype={

school:'一中',saySchoo:function(){alert(this.school); }//code

};

o.saySchool(); //无法访问,undefined

原因是: o的[[prototype]]指向原来的 原型对象;现在重新写了,原型对象的位置变了,(函数中prototype不再指向旧的原型对象),但是o实例环视原来的,原来就没有这个方法,所有访问不到。

ps:可能这些内容过于详细,不过了解还是好的,我们很多时候还是会使用这种模式重写原型对象的。就可能会有上面的二个bug;

http://www.jmfq.cn/news/4775977.html

相关文章:

  • 网站备案失败/网络热词大全
  • 公司做网站需要注意什么/百色seo快速排名
  • 深圳微信网站开发/windows优化大师自动安装
  • 芜湖网站建设优化/百度贴吧网页版登录入口
  • 望京 网站开发/各大网站提交入口
  • b2b外贸网站大全/江苏网站推广
  • 长春哪里做网站/百度问问
  • 银川网站建设公司哪家好/西安seo引擎搜索优化
  • 企业大型网站开发/广州谷歌seo公司
  • 建销售网站需要多少钱/附近成人电脑培训班
  • 菏泽 网站建设/合肥网站制作推广
  • 山西做杂粮的网站/网络营销考试题目及答案2022
  • 专业做网站开发费用/网站seo设计方案案例
  • 推广文案是什么/南昌seo报价
  • 建设网站比较好的公司排名/游戏推广合作平台
  • 网站主机在哪里注册呢/厦门关键词优化seo
  • 常用的网站建设程序有哪些/新浪网今日乌鲁木齐新闻
  • 直播网站 建设/网络推广工作好吗
  • 帮人做网站/有别人的交易链接怎么交易
  • 色弱做网站/合肥seo网站建设
  • 做网站域名优化的怎么样/全网推广成功再收费
  • 福田祥菱v3报价及图片/北京培训seo哪个好
  • 网站模板免费/steam交易链接在哪里看
  • 济南网站推广¥做下拉去118cr/怎么制作一个网页
  • 青山做网站/微信小程序开发文档
  • 高州网站建设/seo技术平台
  • 虚拟机中做网站/泉州百度推广排名优化
  • 网站增加权重/最知名的网站推广公司
  • 建站节/网站模板及源码
  • wordpress建论坛/上海百度seo牛巨微