Javascript 为什么不';我需要方法来设置或读取类属性?
在组合getter和setter时,我意识到它们不是必需的。Javascript 为什么不';我需要方法来设置或读取类属性?,javascript,class,Javascript,Class,在组合getter和setter时,我意识到它们不是必需的。 我错过了什么?如何确保调用属性时它们是类上的属性 'use strict'; const { Book } = require('../app'); const { Page } = require('../page'); const { Bookmark } = require('../bookmark'); // const chai = require('chai'); const expect = chai.expect;
我错过了什么?如何确保调用属性时它们是类上的属性
'use strict';
const { Book } = require('../app');
const { Page } = require('../page');
const { Bookmark } = require('../bookmark');
//
const chai = require('chai');
const expect = chai.expect;
it('has a bookmark', function () {
let bookmark = new Bookmark('bookmark');
bookmark.material = 'paper';
bookmark.mm='a';
expect(bookmark.mm).to.equal('a');
expect(bookmark.material).to.equal('paper');
})
#../bookmark.js
class Bookmark {
constructor(name) {
this.name = name;
}
}
exports.Bookmark = Bookmark;
我不知道你在问什么。它们是“类上的对象”,因为您在实例上调用它。你是在问如何让JavaScript像静态类型的ier语言一样工作吗?因为JavaScript没有“属性”,它只有属性,你可以在任何对象上任意创建这些属性。这可能更适合Typescript,但仍然不能确保类型安全。但是,如果我理解你的问题。。。你可以自己动手掷骰子抛出一个异常。@Bergi有。我来自Ruby,希望需要getter/setter,比如使用
attr\u访问器
。您是否只在javascript中需要更多属性时才使用它们?或者这同样适用于方法,即随时添加它们。ruby是动态的,但可以帮助您避免attr的输入错误。我猜很多js都在向DOM对象添加东西?@MichaelCurrent是的,只有当您想要一个不是普通数据属性的属性时,才使用访问器(get
/set
)。是的,这同样适用于方法,尽管通常情况下,它们都不是“在任何时候”添加的,而是以一种形式化的方式(即在构造函数中)以良好的代码添加的。