zoukankan      html  css  js  c++  java
  • javascript中的对象

    创建对象:

    function MyObject(name,title){

    this.name = name;

    this.title = title;

    this.getName = function (){

    return this.title;

    };

    }

    var obj = new MyObject("jack","C# Dev");

    var name = obj.getName();

    以上的创建方法用的是实例特性,实例方法,这样每份实例都会有特性和方法的拷贝,特别影响性能。可以考虑用原型特性和原型方法,这样在内存中只有一份特性和方法来“共用”,千万别跟java C++的静态方法搞混淆:

    function MyObject(){

    }

    MyObject.prototype.name = name;

    MyObject.prototype.title = title;

    MyObject.prototype.getName = function (){

    return this.title;

    };

    当然,或许还有人想在js中使用类似java静态方法那种特性,可以使用类方法:

    function MyObject(name){

     this.name = name;

    }

    MyObject.show = function (){

    alert("Fuck");

    };

    调用:MyObject.show();

    总结:

    1、对象方法理解就很简单了,主要是如果类生成一个实例,那么该实例就能使用该方法
    2、类方法,不需要通过生成实例就可以使用的方法
    3、原型方法主要是用来对JS已有的系统对象进行扩展而生的,例如Array数组没有什么方法,你可以为其增加原型方法,那么创建的数组就拥有了该方法。原型方法也一般用于对象实例共享,比如Person.prototype.sayName=function(){console.log(this.name);};在原型上面添加该方法,就能实现共享。这样就不用每一次初始化一个实例的时候,为其分配相应的内存了。

  • 相关阅读:
    转-jsonp和jsonpcallback的使用
    转-jQuery jsonp跨域请求
    转-彻底弄懂JS的事件冒泡和事件捕获
    转-打造自己的js类库
    (转)JavaScript: 零基础轻松学闭包(1)
    Myslq 之主键
    Myslq 之空值与非空
    Myslq 之记录查找
    Myslq 之插入记录
    Myslq 之查看数据表
  • 原文地址:https://www.cnblogs.com/foohack/p/5297190.html
Copyright © 2011-2022 走看看