拿正在学习的例子阐述下问题。
// 鸭子类型
var duck = {
duckSinging: function () {
console.log('gagaga');
}
};
var chicken = {
duckSinging: function () {
console.log('gagaga');
}
};
var arr = [];
var checkDuck = function (animal) {
if (animal && typeof animal.duckSinging === 'function') {
arr.push(animal);
console.log('新成员:' + ??????); // 此处想要的效果:新成员:chicken
};
};
checkDuck(duck);
checkDuck(chicken);
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
如果你的代码是在全局作用域下运行的,
nodejs下
global
,浏览器下为window
那么可以这样如下代码所示,否则就不可以~~
对象是没有名字的。你想拿的是变量名,这种方法是不存在的,因为几个变量可以指向同一个对象,如果存在这种方法的话应该返回哪个变量名呢。
比较好的处理方法是在对象中设置一个属性用来保存名称
然后通过
animal.name
访问对象名就可以了你跑一下这个试试看,看是不是你想要的效果。
Duck.prototype.constructor,他的原型对象里面的constructor指向的是duck,他的值是个字符串,可随意更改的,试下能否获取