- 1、本文档共41页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
额外的运算符 除了C#当中的运算符外,JavaScript还包括: 相等运算符(==)与等同运算符(===) == 表示值相同 “1” == true ===表示值相同,并且类型也相同 注意: null与undefined相等但不等同 对象的比较是地址的比较,只有地址相等才相等 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. JavaScript实现面向对象 JavaScript目前版本不支持真正的类,但是JavaScript中可以定义伪类(pseudo-class)来实现面向对象,做到这一点的就是构造函数和原型对象。 构造函数:设计来和new运算符一起使用的函数,此时该函数就与C#、Java当中的构造方法类似 function Rectangle( w, h ){ this.width = w; //定义一个属性 this.height = h; //定义一个方法 this.area = function(){ return this.width * this.height } } var rect1 = new Rectangle(3,5); var a = rect1.area(); Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 原型 上述方案有效的模拟了类,但它仍不是最优的,原因在于大多数情况下,每个对象中的属性值可能不同,但是方法一般是相同的: 在上面的例子中,Rectangle类中的每个对象的area()方法应当都是相同的,但上述例子中写法会导致每一个对象都包含一个自己的area(),导致内存空间的浪费以及效率的降低。 因此,我们应当想到将方法和不变的属性放在一个位置,所有对象都共同拥有它,这样以来既提高了效率,又节省了空间,那么在JavaScript中,这个位置就叫做原型。 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. prototype 原型是这样一种对象:每个JavaScript对象当中都包含一个原型对象,每个对象都从其原型对象中继承方法和不变的属性。 对于任意对象Object,其原型对象就是Object.prototype 原型存在的意义: 使用原型明显减少对象所需内存数量 可以为已经存在的对象动态添加方法 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 改进Rectangle 此时,Rectangle类就可以加以改进: function Rectangle( w, h){ this.width = w; this.height = h; } //添加原型方法 Rectangle.prototype.area = function(){ return this.width * this.height; } var rec = new Rectangle(); //创建一个对象 var area = rec.area(); //调用对象方法 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 原型应用 通过原型不仅可以扩展自定义类,还可以扩展内建类型。 前面提到,String类型没有trim()方法,而此方法在实际当中经常使用,我们可以扩展: String.prototype.trim?=?function?(){ ?? ??return?this.replace(/(^\s*)|(\s*$)/g,?‘’); ?? } 一般情况下要慎用扩展内建类型,这样就更改了JavaScript核心 不允许为Object.prototype
文档评论(0)