面向对象风格与对象关联风格

版权声明:内容多为自言自语,请自行判断有无价值。 https://blog.csdn.net/weixin_41702247/article/details/82915826

对相关联:

Foo={
    init:function(name){
        this.name=name;
    },
    sayName:function(){
        return 'I am '+this.name;
    }
};
Bar=Object.create(Foo);    //*
Bar.greet=function(){
	return 'Hello, '+this.sayName()+'.';
}
var b1=Object.create(Bar);
b1.init('Tom');                 //*
var b2=Object.create(Bar);
b2.init('Mary');                //*

b1.greet();        //"Hello, I am Tom."
b2.greet();        //"Hello, I am Mary."

面向对象:

function Foo(name){
    this.me=name;
}
Foo.prototype.sayName=function(){
    return 'I am '+this.me;
}
function Bar(name){
    Foo.call(this,name);    //*
}
Bar.prototype=Object.create(Foo.prototype);
Bar.prototype.greet=function(){
    return 'Hello, '+this.sayName()+'.';
}

var b1=new Bar('tom');    //*
var b2=new Bar('mary');    //*

b1.greet();        //"Hello, I am tom."
b2.greet();        //"Hello, I am mary."
b1.sayName();      //"I am tom."

猜你喜欢

转载自blog.csdn.net/weixin_41702247/article/details/82915826