gpt4 book ai didi

JavaScript getter 和 setter

转载 作者:行者123 更新时间:2023-11-29 16:14:25 25 4
gpt4 key购买 nike

这是一个非常基本的问题,我确定它是重复的,所以我提前道歉,但这是我写一个对象的方式,这样我就可以说:

myApplication.myFirstMethod(x);
x = myApplication.myFirstMethod();

代码如下:

myApplication = {};
(function() {
myApplication.myFirstMethod = function() {
var local = {};
if (arguments.length) {
local.result = arguments[0];
}
return local.result;
}
myApplication.mySecondMethod = function() {
var local = {};
if (arguments.length) {
local.result = arguments[0];
}
return local.result;
}
})();

最佳答案

jsFiddle Demo

更面向对象的方法是使用实​​例化和原型(prototype)。

设置

var Application = function(){
this.local = {};
};
Application.prototype.Value = function(){
if (arguments.length) {
this.local.result = arguments[0];
}else{
return this.local.result;
}
};

用过

var app = new Application();
app.Value(6);
alert(app.Value());//6

从 jQuery 的 Angular 来看,他们将首先筛选以查看是否有参数,此代码直接来自于 val 函数的源代码:

val: function( value ) {
if ( !arguments.length ) {
var elem = this[0];
...

然后它继续使用元素的 native API 和一些其他指标来获取元素的值(通常,唯一将从 val 返回值的元素类型将是 inputselect 等元素 - 基本上是表单元素)。

if block 的末尾,它会尝试根据是否找到附加到元素(或元素集)的值来返回各种结果。这保证了当遇到“get”时,“setting”子句永远不会执行。如果情况是正在使用“set”,它会通过一组稍微复杂的代码来正确地为元素设置一个值。

代码显示 val: function() 的原因是因为它是用于使用 jQuery 的 extend“扩展”jQuery 原型(prototype)的对象的一部分功能。

This is the exact code in a jsfiddle of jQuery's val function

关于JavaScript getter 和 setter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19276554/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com