JavaScript构造函数详解_javascript技巧.docx.pdf

上传人:tbuqq 文档编号:5616054 上传时间:2020-07-02 格式:PDF 页数:3 大小:116.83KB
返回 下载 相关 举报
JavaScript构造函数详解_javascript技巧.docx.pdf_第1页
第1页 / 共3页
JavaScript构造函数详解_javascript技巧.docx.pdf_第2页
第2页 / 共3页
JavaScript构造函数详解_javascript技巧.docx.pdf_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《JavaScript构造函数详解_javascript技巧.docx.pdf》由会员分享,可在线阅读,更多相关《JavaScript构造函数详解_javascript技巧.docx.pdf(3页珍藏版)》请在三一文库上搜索。

1、JavaScript构造函数详解 构造函数就是初始化一个实例对象,对象的prototype属性是继承一个实例对象。 构造函数注意事项: 1?默认函数首字母大写 2.构造函数并没有显示返回任何东西。new操作符会口动创建给定的类型并返回他 们,当调用构造函数时,new会口动创建this对象,且类型就是构造函数类型。 3.也可以在构造函数中显示调用return.如果返回的值是一个对象,它会代替新创 建的对象实例返回。如杲返回的值是一个原始类型,它会被忽略,新创建的实例 会被返回。 function Person( name) thi s.name 二name; var pl=new PersonC

2、 John“); 等同于: function person(name ) Object obj 二new Object(); obj.name =name; return obj; var pl二person( John“); 4?因为构造函数也是函数,所以可以直接被调用,但是它的返回值为undcfinc, 此 时构造函数里而的this对象等于全局this对象。this. name Jt实就是创建一个全 局的变量name。在严格模式下,当你补通过new调用Person构造函数会出现错误。 pl.n var p2=Person(*Lily*); P2 this.name p2.name O ?

3、Uncaught TypeError: Cannot read property name f of undefined(-) 、I 5.也可以在构造函数中用Object, def ineProperty ()方法来帮助我们初始化: function Pcrson( name) Object.defineProperty(this, name get :function() return name; , set:function (ncwNamc) name =newName; , enumerable : true, / 可枚举,默认为false configurable: true / 可

4、配置 ); var pl二new Person ( 5 John); 6.在构造函数屮使用原型对象 / 比直接在构造函数小写的效率要高的多 Person.prototype. sayName= function() console. log(this. name); ; 但是如果方法比较多的话,大多人会采用一种更简洁的方法:直接使用一个对象 字面形式替换原型对象,如下: Person, prototype = sayName :function() console? log(this? name); , toString :function() return Person + this.nam

5、e+ ; ; 这种方式非常流行,因为你不用多次键入Person, prototype,但有一个副作用你一 定要注意: J5Q5U I liuta LlkJI I lCI IUCI II 1 0 Y U Preserve log pl instanceof Person 使用字面量形式改写了原型对彖改变了构造函数的属性,因此他指向Object而 不 是Person。这是因为原型对象具有一个constructor属性,这是其他对象实例所没 冇的。当一个函数被创建时,它的prototype属性也被创建,且该原型对象的 constructor ?性指向该函数。当使用对象字面量形式改写原型对象时,其 c

6、onstructor屈性将被置为泛用对象Object.为了避免这一点,需要在改写原型对彖 的时候手动重置constructor,如下: Person.prototype = constructor :Person, sayName : function() con sole. log(this. n ame); , toString :function() return Person “+ this? n3me+“ ; 再次测试 : pl. constructor=Pcrson true pl. construetor二二二Object false pl instanceof Person true

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1