何时使用ES6类以及何时在javascript中使用函数

时间:2016-05-27 07:26:55

标签: javascript es6-class

ES6已经上课​​了。 所以我想知道什么时候使用类和什么时候使用简单的功能 在javascript。

因为函数也能够制作新对象。

1 个答案:

答案 0 :(得分:5)

Js Class只是

的语法糖
function SomeClass() {
    // this is basically a constructor
    this.property = 'some value';
};

SomeClass.prototype.someMethod = function() {
    // here you define method logic
}

如果您使用Babel或Typescript,或者您只是不关心浏览器互操作性,则可以使用class表示法,因为它更易于编写,但从本质上讲,没有任何变化。

  

因为函数也能够制作新对象。

在JS中,从Object创建除了基元(布尔值,数字)之外的所有内容,因此即使ArrayString{}Function也能够创建新对象,但不是像Java或C#这样的OOP语言。

你知道,JS是原型语言。每个对象都有一个名为prototype的特殊成员。如果您调用someObject.someMember,则会在someMember中搜索someObject,如果找不到someObject.protoype,引擎会在previousObject中查找,其中包含someObject一些previousObject。您可以说,previousObjectprototype的子类,因为它引用var newObject = {}; newObject.prototype = previousObject; 作为其var newObject = Object.create(previousObject); 。它与OOP语言不同,但它的工作方式与子类化几乎相同。

您可以从任何对象中创建新对象

function newObject () { ... }
newObject.prototype = previousObject;

class newObject extends previousObject { ... }

@POST("feeds")
Call<> createFeeds(@Body RequestBody file);


 MultipartBody.Builder builder = new MultipartBody.Builder();
    builder.setType(MultipartBody.FORM);
    builder.addFormDataPart("content", textContent);

    for(String filePath : imagePathList){
        File file = new File(filePath);
        builder.addFormDataPart("images", file.getName(),
                RequestBody.create(MediaType.parse("image/*"), file));
    }

    MultipartBody requestBody = builder.build();
    Call<SocialCreateFeedResponse> call = mSocialClient.createFeeds( requestBody);

cnaflog.provider(
    "$exceptionHandler",
    {
        $get: ['errorLogService', function( errorLogService ) {
            return( errorLogService );
        }]
    }
);