作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
创建对象时遇到问题。控制台说最后一行有问题。请告诉我它应该如何,我更熟悉 Java,所以这让我有点困惑。
var dog = {
name:"Dog",
age:"11",
getName : function() {
alert(this.name);
}
}
function Dog(name, age) {
this.name = name;
this.age = age;
}
var d1 = new Dog("Rex", 8);
d1.getName();
最佳答案
你的 dog
只是一个简单的对象字面量,
这意味着您的 getName
已绑定(bind)到它,而不是您的 Dog
class。
您可以使该函数成为Dog
的方法
:
/*var dog = {
name:"Dog",
age:"11",
getName : function() {
alert(this.name);
}
}*/
function Dog(name, age) {
this.name = name;
this.age = age;
}
Dog.prototype.getName = function() {
console.log( this.name );
}
var d1 = new Dog("Rex", 8);
d1.getName(); // "Rex"
这是一个使用您的设置
“默认值”的变体
function Dog() {
this.name = "Dog"; // Default name
this.age = 11; // Default age
}
Dog.prototype.getName = function() {
console.log( this.name );
}
var d1 = new Dog();
d1.name = "Rex"; // Override default name
d1.getName(); // "Rex"
关于JavaScript 面向对象 : Uncaught TypeError: is not a function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37530049/
我是一名优秀的程序员,十分优秀!