不确定我在这里做错了什么。 它没有给我结果。
var dd= function(name){
this.sayHello=function(){
alert ("hello " + this.ss);
}
this.name=name;
}
dd("jack").sayHello();
我是否正确称呼它?什么是调试js的最佳工具
答案 0 :(得分:7)
您的dd
功能:
永远不会创建对象
永远不会从dd
指两个不同的属性(name
和ss
),设置一个但使用另一个
您对dd
函数的调用似乎期望它创建并返回一个对象,并且似乎期望sayHello
使用dd
设置的相同属性({{1 }})。
所以:
name
或者,如果您想使用var dd = function(name) {
return {
sayHello: function() {
alert("hello " + this.name);
},
name: name
};
};
dd("Jack").sayHello();
关键字,则可以执行以下操作:
new
使用var Dd = function(name) {
this.name = name;
this.sayHello = function() {
alert("hello " + this.name);
};
};
new Dd("Jack").sayHello();
,对象由new
运算符创建,new
表达式的结果是创建的对象new Dd(...)
(除非new
而是返回另一个对象。)
请注意,我将第一个字母大写。这是在JavaScript中使用构造函数(通过Dd
调用的函数)的压倒性约定。
您还可以将new
移动到将被指定为sayHello
创建的对象原型的对象。被指定为原型的对象在new
属性上可用,因此:
DD.prototype
什么是调试js的最佳工具
所有现代浏览器都内置了功能齐全的调试器。通常可以通过按F12或Ctrl + Shift + I,或者当然可以从浏览器的菜单或hamburger button获得。你使用哪一个完全取决于你。我非常喜欢Chrome中的Dev Tools。