Javascript——对象构造和利用——深入理解
谁能告诉我:Javascript——对象构造和利用——深入理解,javascript,typescript,oop,object,Javascript,Typescript,Oop,Object,谁能告诉我: 如何根据不同的开发场景选择对象结构 到目前为止,与其他模式相比,哪种模式是一种良好的发展模式 如果你有机会开发一个完整的银行/社交网络/网上购物(如亚马逊、易趣)项目,你会使用哪一个?为什么 这只是为了从底层获得足够的理解 1。对象构造函数: var person = new Object(); person.name = "Demo name", person.getName = function(){ return this.name ; }; var person =
var person = new Object();
person.name = "Demo name",
person.getName = function(){
return this.name ;
};
var person = {
name : "Demo name",
getName : function (){
return this.name
}
}
function Person(name){
this.name = name
this.getName = function(){
return this.name
}
}
function Person(){};
Person.prototype.name = "Demo name";
function Person(name){
this.name = name;
}
Person.prototype.getName = function(){
return this.name
}
var person = new function(){
this.name = "Demo name"
}
使用Object.create()方法:
var a=Object.create(null)
2。文本构造函数:
var person = new Object();
person.name = "Demo name",
person.getName = function(){
return this.name ;
};
var person = {
name : "Demo name",
getName : function (){
return this.name
}
}
function Person(name){
this.name = name
this.getName = function(){
return this.name
}
}
function Person(){};
Person.prototype.name = "Demo name";
function Person(name){
this.name = name;
}
Person.prototype.getName = function(){
return this.name
}
var person = new function(){
this.name = "Demo name"
}
3。函数构造函数:
var person = new Object();
person.name = "Demo name",
person.getName = function(){
return this.name ;
};
var person = {
name : "Demo name",
getName : function (){
return this.name
}
}
function Person(name){
this.name = name
this.getName = function(){
return this.name
}
}
function Person(){};
Person.prototype.name = "Demo name";
function Person(name){
this.name = name;
}
Person.prototype.getName = function(){
return this.name
}
var person = new function(){
this.name = "Demo name"
}
4。原型:
var person = new Object();
person.name = "Demo name",
person.getName = function(){
return this.name ;
};
var person = {
name : "Demo name",
getName : function (){
return this.name
}
}
function Person(name){
this.name = name
this.getName = function(){
return this.name
}
}
function Person(){};
Person.prototype.name = "Demo name";
function Person(name){
this.name = name;
}
Person.prototype.getName = function(){
return this.name
}
var person = new function(){
this.name = "Demo name"
}
5。功能/原型组合:
var person = new Object();
person.name = "Demo name",
person.getName = function(){
return this.name ;
};
var person = {
name : "Demo name",
getName : function (){
return this.name
}
}
function Person(name){
this.name = name
this.getName = function(){
return this.name
}
}
function Person(){};
Person.prototype.name = "Demo name";
function Person(name){
this.name = name;
}
Person.prototype.getName = function(){
return this.name
}
var person = new function(){
this.name = "Demo name"
}
6。单身汉:
var person = new Object();
person.name = "Demo name",
person.getName = function(){
return this.name ;
};
var person = {
name : "Demo name",
getName : function (){
return this.name
}
}
function Person(name){
this.name = name
this.getName = function(){
return this.name
}
}
function Person(){};
Person.prototype.name = "Demo name";
function Person(name){
this.name = name;
}
Person.prototype.getName = function(){
return this.name
}
var person = new function(){
this.name = "Demo name"
}
const user = { name: "Jonas", session: 1234 };
操作符,我只想:
function createUser(name) {
return { name, session: createSession() }
}
function logout(user) {
user.session = undefined;
}
类
语法,因为它更容易阅读(特别是对于来自另一种语言的程序员)。通过将方法移动到原型中,它们在实例之间共享,如果创建了大量实例,这将降低内存和性能成本
class User {
constructor(name) {
this.name = name;
}
login() {
this.session = 1234;
}
}
const user = { name: "Jonas", session: 1234 };
操作符,我只想:
function createUser(name) {
return { name, session: createSession() }
}
function logout(user) {
user.session = undefined;
}
类
语法,因为它更容易阅读(特别是对于来自另一种语言的程序员)。通过将方法移动到原型中,它们在实例之间共享,如果创建了大量实例,这将降低内存和性能成本
class User {
constructor(name) {
this.name = name;
}
login() {
this.session = 1234;
}
}