从构造函数中引用Javascript实例变量而不使用'this'关键字
Referring Javascript Instance Variable from Constructor without using 'this' keyword
我刚开始使用JavaScript oops概念,我想从构造函数中访问3个实例变量,没有'this'关键字,第一个值即将到来,但不是第二个。等等......'
function CreateObject()
{
var p1 = new person('chanky',25,'Male');
}
function person(name,age,sex)
{
this.name = name;
this.age = age;
this.sex = sex;
document.write(name); //Working
document.write(age); //not Working
document.write(sex); //not Working
/*If we use 'this' keyword then all are Working */
document.write(this.name); // Working
document.write(this.age); // Working
document.write(this.sex); // Working
}`
"this"有什么问题?你想访问一个没有声明过的成员,所以你使用'this'。
您可以像这样访问类外的值:
var p = new person('chanky',25,'Male');
alert (p.age);
function person(name,age,sex)
{
this.name = name;
this.age = age;
this.sex = sex;
}
如果您仍然担心,请声明一个变量并将接收到的值赋给它们,并且在使用OO方法时,封装变量以便在类之外访问它们
function person(name,age,sex)
{
var _name;
var _age;
var _sex;
_name = name;
_age = age;
_sex = sex;
this.getName = function () {
return _name;
};
this.getAge = function () {
return _age;
};
this.getSex = function () {
return _sex;
};
}
并使用'methods':
var p2 = new person('chanky',25,'Male');
alert (p2.getAge());
你好,Chanky,应该可以正常工作
我刚刚创建了一个jsFiddle来显示使用console.log
jsFiddle: https://jsfiddle.net/hq4ebs2d/
Javascriptfunction person(name, age, sex) {
this.name = name;
this.age = age;
this.sex = sex;
console.log(name); //Working
console.log(age); //not Working
console.log(sex); //not Working
/*If we use 'this' keyword then all are Working */
console.log(this.name); // Working
console.log(this.age); // Working
console.log(this.sex); // Working
};
var p1 = new person('chanky', 25, 'Male');
在你的代码末尾有一个}',一定要把它改成};
请参阅jsbin..https://jsbin.com/teyupuhele/edit?html、js、输出
这是面向对象的最佳实践…
function person(name, age, sex) {
this.name = name;
this.age = age;
this.sex = sex;
};
// create p1 instance of object person
var p1 = new person('chanky', 22, 'Male');
console.log(p1.name); //Working
console.log(p1.age); //Working
console.log(p1.sex); //Working
相关文章:
- JavaScript 中的嵌套函数和 “this” 关键字
- Javascript 对象和 this 关键字
- 将“this”关键字发送到对象中
- 如何使用“this”关键字来调用a
- 使用关键字“this”有什么好处
- 组合类和事件监听器:`this`关键字
- 将this关键字与selectedIndex一起使用的优势
- javascript中的关键字THIS作为全局命名空间
- 在forEach中调用类函数:Javascript如何处理“this”关键字
- 使用“this”关键字响应类行为
- Javascript 'this' 关键字 在嵌套函数中
- Javascript 关键字 THIS 和 ELEMENT
- 使用 RhinoScriptEngine,我如何更改 javascript 关键字“this”所指的内容
- 当用作函数参数/agrument时,关键字this指的是什么
- Javascript函数和对象使用关键字'this'不工作
- 为什么关键字“this”在HTML和JS中不起作用
- 如何在javascript中使用关键字this
- 在 lambda 中使用关键字 this 与带有 Typescript 的函数时会发生什么
- 在使用对象文字表示法定义的模块中使用关键字this的最佳实践
- 关键字this没有给我当前对象,只有它的父对象.如何得到当前对象