ES6已经上课了。 所以我想知道什么时候使用类和什么时候使用简单的功能 在javascript。
因为函数也能够制作新对象。
答案 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
创建除了基元(布尔值,数字)之外的所有内容,因此即使Array
,String
或{}
或Function
也能够创建新对象,但不是像Java或C#这样的OOP语言。
你知道,JS是原型语言。每个对象都有一个名为prototype
的特殊成员。如果您调用someObject.someMember
,则会在someMember
中搜索someObject
,如果找不到someObject.protoype
,引擎会在previousObject
中查找,其中包含someObject
一些previousObject
。您可以说,previousObject
是prototype
的子类,因为它引用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 );
}]
}
);