根据这个答案(https://stackoverflow.com/a/28281845/1477388)我知道我可以使用它自己的属性和方法创建一个javascript对象。
但是,当尝试通过回调分配特定方法时,它不起作用!
为什么我不能简单地传递方法而不是传递整个对象?
JS小提琴:https://jsfiddle.net/Lson3qwx/1/
// base `Person` prototype
var Person = {
name : '',
age : 22,
type : 'human',
msg: function(message) {
alert(message);
},
greet: function() {
//console.log('Hi, my name is ' + this.name + ' and I am a ' + this.type + '.' );
this.msg('Hi, my name is ' + this.name + ' and I am a ' + this.type + '.');
}
};
// create an instance of `Person`:
var skywalker = Object.create(Person);
skywalker.name = 'Anakin Skywalker';
//skywalker.greet(); // 'Hi, my name is Anakin Skywalker and I am a human.'
var callbackTest1 = function(callback) {
callback.greet();
}
var callbackTest2 = function(callback) {
callback();
}
callbackTest1(skywalker); // this works
callbackTest2(skywalker.greet); // this doesn't